Rust-powered Python web framework — 10x faster than FastAPI
Project description
Ignite your API. Built in Rust, runs in Python.
Ignyx is an insanely fast, concurrent, and robust asynchronous web framework for Python.
Under the hood, it drops down into a highly optimized, multi-threaded Rust Core via PyO3, completely sidestepping Python's Global Interpreter Lock (GIL) bottleneck during high-throughput network event loops.
If you love the Developer Experience (DX) of FastAPI, but need the raw multi-core scaling infrastructure of Go or Rust, Ignyx is for you.
✨ Features
- Blazing Fast: See the Benchmark — up to 8.7x faster than FastAPI for raw JSON serialization and dynamic routing.
- Fearless Concurrency: Network I/O, parsing, and connection pooling are handled concurrently in Rust thread pools before ever touching Python.
- Native Async/Await: 100% standard Python
async defandawaitcompatibility. - Pydantic Validation: Ships out-of-the-box with
pydantic>=2.0schema validation logic for fast, strict JSON enforcement. - Deeply Typed: Complete generic typing inference and
py.typedcompliance out of the box for perfect IDE autocompletion. - Routers: Full support for modular, FastAPI-style hierarchical
Routerobjects.
📦 Installation
Requirements: Python 3.12+
pip install ignyx
🛠️ Quickstart
Let's build a simple, screaming-fast JSON API:
from ignyx import Ignyx
app = Ignyx()
@app.get("/")
async def root():
return {"message": "Hello from Rust-powered Python!"}
if __name__ == "__main__":
# Spins up the optimized Rust HTTP listener
app.run(host="0.0.0.0", port=8000)
🚀 Advanced Modular Example
Ignyx scales beautifully to enterprise API patterns. Just like mature frameworks, it supports nested routers, request unpacking, and typed response overrides.
from ignyx import Ignyx, Router, JSONResponse
app = Ignyx()
users_router = Router(prefix="/users")
# Simulated async database fetch
async def fake_db_lookup(user_id: str):
return {"id": user_id, "name": "Saketh", "role": "admin"}
@users_router.get("/{user_id}")
async def get_user_profile(user_id: str):
data = await fake_db_lookup(user_id)
# Return explicit JSONResponses or standard Python dictionaries
if not data:
return JSONResponse({"error": "User not found!"}, status_code=404)
return JSONResponse(data)
# Include the modular router into the core app
app.include_router(users_router)
if __name__ == "__main__":
app.run(workers=4)
⚡️ The Benchmark: 8.7x Faster than FastAPI
Why is it so fast? When an HTTP request comes in, a hyper-backed Rust server engine accepts the connection, parses the packets, strips the headers, and prepares the asynchronous payload across isolated worker threads before the Python GIL wakes up. You only pay for Python execution exactly when you need business logic.
Tested on MacBook Air M2 (native ARM64). Both frameworks configured identically (CORS + Pydantic + dynamic routing).
| Endpoint | Ignyx (Rust Engine) | FastAPI (Uvicorn) | Speedup | Latency |
|---|---|---|---|---|
/plaintext |
53,886 req/s | 6,193 req/s | 🔥 8.70x | 2.22ms |
/users/{id} |
48,988 req/s | 5,597 req/s | 🔥 8.75x | 2.39ms |
/users (JSON) |
44,178 req/s | 5,200 req/s | 🔥 8.49x | 2.61ms |
(Tool: wrk -t4 -c100 -d10s)
🤝 Contributing
Want to make the fastest Python framework even faster? Contributions to both the Python wrapper and the core Rust HTTP engine are highly welcome!
Setting up the Dev Environment:
Because the core is Rust, you'll need maturin.
# 1. Clone the repository
git clone https://github.com/sakethdevx/ignyx.git
cd ignyx
# 2. Create a virtual environment
python -m venv venv
source venv/bin/activate
# 3. Install dependencies and compile the Rust extensions dynamically
pip install -r requirements.txt
pip install maturin
maturin develop # Installs the local Rust code dynamically as `ignyx._core`
# 4. Run the Python tests
pytest tests/
📜 License
This project is licensed under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ignyx-1.0.3-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: ignyx-1.0.3-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 862.8 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed1d100b37890caab221b652d5885bdaa71f5e1e27488557576324eb321eaca4
|
|
| MD5 |
ae7c03ee1ae12dbfead7a788421c46df
|
|
| BLAKE2b-256 |
02704655b0013ffa9cccc87e6517764b42c0050fed75e521af40f35d78d58ab9
|
Provenance
The following attestation bundles were made for ignyx-1.0.3-cp313-cp313-win_amd64.whl:
Publisher:
release.yml on sakethdevx/ignyx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ignyx-1.0.3-cp313-cp313-win_amd64.whl -
Subject digest:
ed1d100b37890caab221b652d5885bdaa71f5e1e27488557576324eb321eaca4 - Sigstore transparency entry: 1003536770
- Sigstore integration time:
-
Permalink:
sakethdevx/ignyx@452d28bbf21071478378f65cd9616441922c9699 -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/sakethdevx
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@452d28bbf21071478378f65cd9616441922c9699 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ignyx-1.0.3-cp313-cp313-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: ignyx-1.0.3-cp313-cp313-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 892.2 kB
- Tags: CPython 3.13, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64ac559388c834eb79742071393b5b510f387a351e29c25a050e29ed4a2d848f
|
|
| MD5 |
87ff0fb9f29309091ea66c3b5ce76341
|
|
| BLAKE2b-256 |
580860621cf762aa6a179c6b9ca5636df582ef8b875e9b7a2deef7aae596859c
|
Provenance
The following attestation bundles were made for ignyx-1.0.3-cp313-cp313-manylinux_2_34_x86_64.whl:
Publisher:
release.yml on sakethdevx/ignyx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ignyx-1.0.3-cp313-cp313-manylinux_2_34_x86_64.whl -
Subject digest:
64ac559388c834eb79742071393b5b510f387a351e29c25a050e29ed4a2d848f - Sigstore transparency entry: 1003536765
- Sigstore integration time:
-
Permalink:
sakethdevx/ignyx@452d28bbf21071478378f65cd9616441922c9699 -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/sakethdevx
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@452d28bbf21071478378f65cd9616441922c9699 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ignyx-1.0.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: ignyx-1.0.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 862.1 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
50f512bafa5aee91d97a212beafefdbe418a4c28d2ef2c206224c4d216b9fd23
|
|
| MD5 |
a2c56d8640b01c46d923b11f92cfc0d7
|
|
| BLAKE2b-256 |
8ed06a2b72d14d9fce090734aaa263d10fd25191effa4c929ebceead3c654062
|
Provenance
The following attestation bundles were made for ignyx-1.0.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
release.yml on sakethdevx/ignyx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ignyx-1.0.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
50f512bafa5aee91d97a212beafefdbe418a4c28d2ef2c206224c4d216b9fd23 - Sigstore transparency entry: 1003536785
- Sigstore integration time:
-
Permalink:
sakethdevx/ignyx@452d28bbf21071478378f65cd9616441922c9699 -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/sakethdevx
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@452d28bbf21071478378f65cd9616441922c9699 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ignyx-1.0.3-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.
File metadata
- Download URL: ignyx-1.0.3-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
- Upload date:
- Size: 1.7 MB
- Tags: CPython 3.13, macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7dae7a7f36c86316678f06425e567122099e424fa8e35431aad15e451278b0d6
|
|
| MD5 |
2cb1bb27a70022d81c7e8885a2a9be5c
|
|
| BLAKE2b-256 |
8131281b73c1ae86462dca75c92e7aebe869442b98403e2d1ce6ff6507cac428
|
Provenance
The following attestation bundles were made for ignyx-1.0.3-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:
Publisher:
release.yml on sakethdevx/ignyx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ignyx-1.0.3-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl -
Subject digest:
7dae7a7f36c86316678f06425e567122099e424fa8e35431aad15e451278b0d6 - Sigstore transparency entry: 1003536767
- Sigstore integration time:
-
Permalink:
sakethdevx/ignyx@452d28bbf21071478378f65cd9616441922c9699 -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/sakethdevx
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@452d28bbf21071478378f65cd9616441922c9699 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ignyx-1.0.3-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: ignyx-1.0.3-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 863.4 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
09006c1eec0c87937c7aa7748d21d244269285bb71b8e05aa0101a9c808cf428
|
|
| MD5 |
1b740c240ff62f937b348824aa430c81
|
|
| BLAKE2b-256 |
863980848fdc120f938be755b19e1b7314c1a0cde869dc37e8fcfbc11e8d2c7f
|
Provenance
The following attestation bundles were made for ignyx-1.0.3-cp312-cp312-win_amd64.whl:
Publisher:
release.yml on sakethdevx/ignyx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ignyx-1.0.3-cp312-cp312-win_amd64.whl -
Subject digest:
09006c1eec0c87937c7aa7748d21d244269285bb71b8e05aa0101a9c808cf428 - Sigstore transparency entry: 1003536778
- Sigstore integration time:
-
Permalink:
sakethdevx/ignyx@452d28bbf21071478378f65cd9616441922c9699 -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/sakethdevx
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@452d28bbf21071478378f65cd9616441922c9699 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ignyx-1.0.3-cp312-cp312-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: ignyx-1.0.3-cp312-cp312-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 892.9 kB
- Tags: CPython 3.12, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e8bb6488e716181abbb01ff2ea1991ebcfc71c296e3072b93b773acc995785b
|
|
| MD5 |
4a26fe51453b7027bb5228128d210320
|
|
| BLAKE2b-256 |
7f420bf07116ebf7eb2e297346b39ba537b59121f12847c0772dec5527503d05
|
Provenance
The following attestation bundles were made for ignyx-1.0.3-cp312-cp312-manylinux_2_34_x86_64.whl:
Publisher:
release.yml on sakethdevx/ignyx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ignyx-1.0.3-cp312-cp312-manylinux_2_34_x86_64.whl -
Subject digest:
9e8bb6488e716181abbb01ff2ea1991ebcfc71c296e3072b93b773acc995785b - Sigstore transparency entry: 1003536766
- Sigstore integration time:
-
Permalink:
sakethdevx/ignyx@452d28bbf21071478378f65cd9616441922c9699 -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/sakethdevx
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@452d28bbf21071478378f65cd9616441922c9699 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ignyx-1.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: ignyx-1.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 862.6 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6f686e3c43cb3ba4135272a8fbd33efe3c002384c400a9fc72556650c72a7a6b
|
|
| MD5 |
db519ab2b69779bed7f3f5c20d9b37ef
|
|
| BLAKE2b-256 |
41cdb0b5b50fb92c4db08f3de50ce26081c6766fb68249181e67a8272f591441
|
Provenance
The following attestation bundles were made for ignyx-1.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
release.yml on sakethdevx/ignyx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ignyx-1.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
6f686e3c43cb3ba4135272a8fbd33efe3c002384c400a9fc72556650c72a7a6b - Sigstore transparency entry: 1003536776
- Sigstore integration time:
-
Permalink:
sakethdevx/ignyx@452d28bbf21071478378f65cd9616441922c9699 -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/sakethdevx
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@452d28bbf21071478378f65cd9616441922c9699 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ignyx-1.0.3-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.
File metadata
- Download URL: ignyx-1.0.3-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
- Upload date:
- Size: 1.7 MB
- Tags: CPython 3.12, macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e2e47ad7edfeb9c5d014f4879f734f882be576b75acd0b9eaf62b0c0aaf28e9
|
|
| MD5 |
547570c772d140cc7c88c820b392b813
|
|
| BLAKE2b-256 |
f4eee2b0a5b30c49329cdfd491e038e8e38de3ce3868dfc9b6e1595beff20366
|
Provenance
The following attestation bundles were made for ignyx-1.0.3-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:
Publisher:
release.yml on sakethdevx/ignyx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ignyx-1.0.3-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl -
Subject digest:
6e2e47ad7edfeb9c5d014f4879f734f882be576b75acd0b9eaf62b0c0aaf28e9 - Sigstore transparency entry: 1003536787
- Sigstore integration time:
-
Permalink:
sakethdevx/ignyx@452d28bbf21071478378f65cd9616441922c9699 -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/sakethdevx
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@452d28bbf21071478378f65cd9616441922c9699 -
Trigger Event:
push
-
Statement type: