Quick Start
Get up and running with Halt in less than 5 minutes.
Python (FastAPI)
Basic token bucket rate limiter for a public API.
main.pypython
from fastapi import FastAPI
from halt import RateLimiter, InMemoryStore, presets
from halt.adapters.fastapi import HaltMiddleware
app = FastAPI()
# 1. Create a limiter
limiter = RateLimiter(
store=InMemoryStore(),
policy=presets.PUBLIC_API # 100 req/min
)
# 2. Add middleware
app.add_middleware(HaltMiddleware, limiter=limiter)
@app.get("/")
async def root():
return {"message": "Hello World"}TypeScript (Express)
Simple rate limiting middleware for Express.
index.tstypescript
import express from 'express';
import { RateLimiter, InMemoryStore, presets } from 'halt';
import { haltMiddleware } from 'halt/express';
const app = express();
// 1. Create limiter
const limiter = new RateLimiter({
store: new InMemoryStore(),
policy: presets.PUBLIC_API, // 100 req/min
});
// 2. Use middleware
app.use(haltMiddleware(limiter));
app.get('/', (req, res) => {
res.json({ message: 'Hello World' });
});
app.listen(3000);