Pounce

A Python ASGI server for production apps, streaming responses, and free-threaded Python

Python ASGI Server for Free-Threaded Python

Production-ready. Streaming-first. Free-threading aware.

Pounce is a pure-Python ASGI server designed for Python 3.14+ and optimized for Python 3.14t. Instead of relying solely on fork-based worker models, Pounce can run worker threads that share a single interpreter and one copy of your application.

import pounce

pounce.run("myapp:app")

Why Use Pounce

Free-Threading Native

Real OS threads, not processes, on Python 3.14t. N workers share one interpreter, one copy of the application, and one set of frozen configuration.

Streaming-First

The response pipeline sends body chunks immediately to the socket. Good fit for chunked HTML, event streams, and token delivery.

2026-Native Features

Python 3.14 stdlibcompression.zstdsupport, plus Server-Timing headers for built-in observability.

Pure Python

No Rust and no C extensions in the server core. One required dependency (h11) with optional extras for HTTP/2, WebSocket, and TLS.

Common Use Cases

  • Running standard ASGI apps with a Python-native server
  • Replacing Uvicorn deployments while keeping a familiar CLI
  • Serving streaming responses with low buffering overhead
  • Deploying free-threaded Python apps with shared-memory worker threads

Protocols

Protocol Backend Install
HTTP/1.1 h11 (pure Python) built-in
HTTP/2 h2 (stream multiplexing, priority) pounce[h2]
WebSocket wsproto (including WS over H2) pounce[ws]
TLS stdlib ssl + truststore pounce[tls]
All Everything above pounce[full]

The Bengal Ecosystem

A structured reactive stack — every layer written in pure Python for 3.14t free-threading.

ᓚᘏᗢ Bengal Static site generator Docs
∿∿ Purr Content runtime
⌁⌁ Chirp Web framework Docs
=^..^= Pounce ASGI server ← You are here Docs
)彡 Kida Template engine Docs
ฅᨐฅ Patitas Markdown parser Docs
⌾⌾⌾ Rosettes Syntax highlighter Docs

Python-native. Free-threading ready. No npm required.