A Rust HTTP server for Python applications
Find a file
2022-10-24 18:44:50 +02:00
.github/workflows drop Python 3.7 support on win 2022-07-12 14:51:58 +02:00
benchmarks Use List[Tuple[str, str]] for RSGI headers output 2022-10-18 16:36:07 +02:00
docs/spec Add rsgi specification (#3) 2022-10-18 17:33:32 +02:00
granian Improve errors handling 2022-10-24 18:44:50 +02:00
lib/pyo3-asyncio use pyo3-log for logging (#5) 2022-10-10 15:34:24 +02:00
src Improve errors handling 2022-10-24 18:44:50 +02:00
tests Improve errors handling 2022-10-24 18:44:50 +02:00
.gitignore first implementation 2022-04-15 18:45:01 +02:00
Cargo.lock Bump version to 0.1.0 2022-10-24 18:44:10 +02:00
Cargo.toml Bump version to 0.1.0 2022-10-24 18:44:10 +02:00
LICENSE first implementation 2022-04-15 18:45:01 +02:00
pyproject.toml Bump uvloop to 0.17 2022-10-18 17:35:25 +02:00
README.md Add rsgi specification (#3) 2022-10-18 17:33:32 +02:00
setup.py review package meta 2022-04-18 20:08:21 +02:00

Granian

A Rust HTTP server for Python applications.

Rationale

The main reasons behind Granian design are:

  • Have a single, correct HTTP implementation, supporting versions 1, 2 (and eventually 3)
  • Provide a single package for several platforms
  • Avoid the usual Gunicorn + uvicorn + http-tools dependency composition on unix systems
  • Provide stable performance compared with existing alternatives

Features

  • Supports ASGI/3 and RSGI interface applications
  • Implements HTTP/1 and HTTP/2 protocols
  • Supports HTTPS
  • Supports websockets over HTTP/1 and HTTP/2

Project status

Granian is currently in early-stage development.

Granian is compatible with Python 3.7 and above versions on unix platforms and 3.8 and above on Windows.

License

Granian is released under the BSD License.