# Comparison URL: /docs/about/comparison/ Section: about Tags: comparison, uvicorn, granian, hypercorn -------------------------------------------------------------------------------- ASGI Server Landscape Every existing ASGI server was built for a Python that had a GIL. Pounce is built for the world that Python 3.14t creates. Feature Comparison Feature Pounce Uvicorn Granian Hypercorn Daphne Language Python Python Rust + Python Python Python Parallelism Threads (nogil) Processes Rust threads Processes Processes Memory model Shared Duplicated Mixed Duplicated Duplicated Free-threading Native Compatible Partial No No HTTP/1.1 h11 / httptools httptools / h11 Hyper (Rust) h11 Twisted HTTP/2 h2 (optional) No Yes h2 No WebSocket wsproto (optional) websockets Yes wsproto Twisted Compression zstd + gzip No No No No Server-Timing Built-in No No No No TLS stdlib ssl Yes Yes Yes No Dev reload Built-in watchfiles Built-in No No Dependencies 1 (h11) 2+ Rust binary 3+ Twisted Architecture Comparison Uvicorn Uvicorn runs one event loop per process. Parallelism means fork — four workers means four copies of your app, routes, templates, and config in separate memory. It added Python 3.14 compatibility but not a free-threading-native worker model. Granian Granian does its I/O in Rust and calls into Python for the ASGI app. It supports nogil threads, but the core server logic isn't Python — you can't debug or extend it from Python. Hypercorn Hypercorn is process-based with no free-threading awareness. It supports HTTP/2 via h2 but doesn't leverage shared memory or thread-based parallelism. Daphne Daphne is built on Twisted. Process-based, no free-threading support, no HTTP/2. Primarily used with Django Channels. When to Use Pounce Pounce is the right choice when: You're on Python 3.14t and want thread-based parallelism You want shared memory across workers (lower memory footprint) You need streaming responses with minimal latency You want stdlib compression (zstd) without external dependencies You prefer pure Python for debuggability and extensibility When to Use Something Else Maximum raw throughput — Granian's Rust I/O layer may be faster for pure proxy workloads Django Channels — Daphne has the deepest Django integration Existing Uvicorn deployment — If it's working and you're not on 3.14t, there's no urgent reason to switch See Also Performance — Benchmarks and design Thread Safety — The shared memory model -------------------------------------------------------------------------------- Metadata: - Word Count: 348 - Reading Time: 2 minutes