A high-performance Rust HTTP server for Python applications, supporting ASGI, RSGI, and WSGI interfaces.
Granian is a Rust-based HTTP server specifically designed for Python applications. It serves ASGI, RSGI, and WSGI interfaces with support for HTTP/1, HTTP/2, websockets, and static files, aiming to provide a high-performance, single-dependency alternative to traditional Python server compositions like Gunicorn + uvicorn.
Python developers and DevOps engineers looking for a performant, modern HTTP server to deploy production web applications, especially those requiring HTTP/2, high concurrency, or websocket support.
Developers choose Granian for its superior performance, simplified deployment with a single package, and robust support for modern HTTP features, making it ideal for high-throughput applications where traditional Python servers may be a bottleneck.
A Rust HTTP server for Python applications
Full HTTP/1, HTTP/2, and websocket handling with configurable options, as highlighted in the Features section, enabling high-performance applications.
Built on Rust's Hyper and Tokio, offering superior performance and stable benchmarks compared to traditional Python servers like Gunicorn.
Replaces the Gunicorn + uvicorn dependency composition with a single package, reducing complexity and improving deployment simplicity.
Direct static file serving with configurable routes and caching, eliminating the need for external middleware or servers.
Some ASGI extensions are not yet implemented, which may limit compatibility with frameworks relying on advanced features, as noted in the Rationale.
Extensive options for workers, threads, backpressure, and runtime modes require deep tuning, which can be overwhelming without expertise.
Free-threaded Python support is experimental and discouraged for production, posing risks for teams seeking stable, production-ready solutions.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.