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);