Pounce

A free-threading-native ASGI server for Python 3.14t

ASGI, Without the GIL

Free-threading native. Streaming-first. Pure Python.

Pounce is a pure-Python ASGI server designed from scratch for Python 3.14t. Instead of fork-based worker models, pounce runs N worker threads sharing a single interpreter — leveraging free-threading for true parallelism without memory duplication.

import pounce

pounce.run("myapp:app")

What's good about it

Free-Threading Native

Real OS threads, not processes. N workers share one interpreter, one copy of the application, one set of frozen config — zero synchronization for immutable data.

Streaming-First

The response pipeline sends body chunks immediately to the socket. Chunked HTML, event streams, AI token delivery — no buffering, instant delivery.

2026-Native Features

First ASGI server with zero-dependency zstd compression via Python 3.14's stdlib (PEP 784). Server-Timing headers auto-injected for built-in observability.

Pure Python

No Rust, no C extensions in the server core. One dependency (h11). Debuggable, hackable, readable. Optional extras for HTTP/2, WebSocket, and TLS.


Protocols

Protocol Backend Install
HTTP/1.1 h11 (pure Python, default) built-in
HTTP/1.1 httptools (C-accelerated) pounce[fast]
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 (except httptools) 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.