Rust-powered Python web framework — 10x faster than FastAPI
Project description
Ignite your API. Built in Rust, runs in Python.
Description
Ignyx is a next-generation Python web framework engineered for maximum throughput, utilizing a Rust-powered HTTP core built on Hyper and Tokio. It provides a familiar, FastAPI-like decorator syntax, allowing developers to build high-performance APIs with zero learning curve. In honest benchmarks, Ignyx operates 8-9x faster than standard Python async frameworks. It integrates seamlessly with the modern Python ecosystem, featuring full async/await capability, Pydantic v2 validation, WebSockets, and dependency injection.
Features
- Blazing fast (8-9x FastAPI)
- Owns full HTTP pipeline — no ASGI overhead
- Native async/await support
- Pydantic v2 validation
- Dependency injection (Depends pattern)
- WebSocket support
- Modular routing with Router + prefix
py.typedfor full IDE autocompletion
Benchmark
Apple M2, wrk -t4 -c100 -d10s
| Endpoint | Ignyx | FastAPI | Speedup |
|---|---|---|---|
/plaintext |
53,886 req/s | 6,193 req/s | 🔥 8.70x |
/users/{id} |
48,988 req/s | 5,597 req/s | 🔥 8.75x |
/users (POST JSON) |
44,178 req/s | 5,200 req/s | 🔥 8.49x |
Note: FastAPI tested with Uvicorn single worker — standard config.
Installation
pip install ignyx==2.1.0
Or with uv:
uv add ignyx
Quickstart
from ignyx import Ignyx
app = Ignyx()
@app.get("/")
async def root(request):
return {"message": "Hello from Ignyx!"}
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8000)
Feature Examples
Pydantic Validation
from ignyx import Ignyx
from pydantic import BaseModel, ValidationError
app = Ignyx()
class User(BaseModel):
name: str
age: int
@app.post("/users")
async def create_user(request):
try:
user = User(**request.json())
return {"status": "success", "data": user.model_dump()}
except ValidationError as e:
return {"error": e.errors()}, 400
Path + Query Parameters
from ignyx import Ignyx
app = Ignyx()
@app.get("/users/{id}")
async def get_user(request, id: int):
format_type = request.query.get("format", "json")
return {"id": id, "format": format_type}
Dependency Injection
from ignyx import Ignyx, Depends
app = Ignyx()
def get_token(request):
auth_header = request.headers.get("Authorization")
if auth_header and auth_header.startswith("Bearer "):
return auth_header.split(" ")[1]
return None
@app.get("/secure")
async def secure_route(request, token=Depends(get_token)):
if not token:
return {"error": "Unauthorized"}, 401
return {"message": "Access granted", "token": token}
Middleware
from ignyx import Ignyx
app = Ignyx()
@app.middleware
async def cors_middleware(request, call_next):
response = await call_next(request)
response.headers["Access-Control-Allow-Origin"] = "*"
return response
WebSockets
from ignyx import Ignyx
app = Ignyx()
@app.websocket("/echo")
async def echo_server(ws):
await ws.accept()
while True:
data = await ws.receive_text()
if data == "close":
break
await ws.send_text(f"Echo: {data}")
Modular Routing
from ignyx import Ignyx, Router
app = Ignyx()
api_router = Router(prefix="/api/v1")
@api_router.get("/status")
async def status(request):
return {"status": "operational"}
app.include_router(api_router)
Comparison vs FastAPI
| Feature | Ignyx | FastAPI |
|---|---|---|
| Pydantic v2 validation | ✅ | ✅ |
| Async/Await | ✅ | ✅ |
| Dependency Injection | ✅ | ✅ |
| WebSockets | ✅ | ✅ |
| Modular Routers | ✅ | ✅ |
| Performance (req/s) | ~50k | ~6k |
| ASGI overhead | ❌ None | ✅ Yes |
| TestClient | ✅ | ✅ |
| Static file serving | ✅ | ✅ |
| Lifespan events | ✅ | ✅ |
| Exception handlers | ✅ | ✅ |
Current Limitations
- Hot reloading not yet implemented
- OpenAPI schema is basic (no Pydantic response schemas yet)
These are all on the roadmap and will ship in upcoming releases.
Contributing
We welcome contributions! Please see our Contributing Guide for details on how to set up your development environment.
Deployment Note
Ignyx manages its own Tokio runtime. No Uvicorn or Gunicorn needed. Just python app.py.
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-2.1.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: ignyx-2.1.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 894.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 |
c9681cc9957e8ea8d29bd6654a07045813a9a711e7806fd66c94443d54d1ee26
|
|
| MD5 |
4bf8cb1707abeb01d20308fa99b7df56
|
|
| BLAKE2b-256 |
c0cdd95a485b169f5af3897c6bad01f273355f9897444f74a998f8a201e32123
|
Provenance
The following attestation bundles were made for ignyx-2.1.0-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-2.1.0-cp313-cp313-win_amd64.whl -
Subject digest:
c9681cc9957e8ea8d29bd6654a07045813a9a711e7806fd66c94443d54d1ee26 - Sigstore transparency entry: 1005012316
- Sigstore integration time:
-
Permalink:
sakethdevx/ignyx@8d7535fb2917d691c9041bc41add74d8a21ab82d -
Branch / Tag:
refs/tags/v2.1.0 - Owner: https://github.com/sakethdevx
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8d7535fb2917d691c9041bc41add74d8a21ab82d -
Trigger Event:
push
-
Statement type:
File details
Details for the file ignyx-2.1.0-cp313-cp313-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: ignyx-2.1.0-cp313-cp313-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 918.1 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 |
acc5042b2e8a961b397b62ed208cd91188ecc39f4dcecb6ad36a6ac01f9334db
|
|
| MD5 |
578df34dc7fb4ae7f8ee8e73cd613d09
|
|
| BLAKE2b-256 |
737d8681acfc10c529b815fd71f46ee618aa65a60e88ce45e2d74236cc4f8c4b
|
Provenance
The following attestation bundles were made for ignyx-2.1.0-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-2.1.0-cp313-cp313-manylinux_2_34_x86_64.whl -
Subject digest:
acc5042b2e8a961b397b62ed208cd91188ecc39f4dcecb6ad36a6ac01f9334db - Sigstore transparency entry: 1005012255
- Sigstore integration time:
-
Permalink:
sakethdevx/ignyx@8d7535fb2917d691c9041bc41add74d8a21ab82d -
Branch / Tag:
refs/tags/v2.1.0 - Owner: https://github.com/sakethdevx
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8d7535fb2917d691c9041bc41add74d8a21ab82d -
Trigger Event:
push
-
Statement type:
File details
Details for the file ignyx-2.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: ignyx-2.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 886.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 |
9d891e8b1a3591becdf9ecf244a8f3a04e077c60fcb8b8a0d6be2984b555f421
|
|
| MD5 |
db7dd6a99a5438d4e69acbb930a0b4c0
|
|
| BLAKE2b-256 |
be2853cfb1aa7230febd577e71daa5efee921f3846491eaa21659cfb7ae2ff6a
|
Provenance
The following attestation bundles were made for ignyx-2.1.0-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-2.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
9d891e8b1a3591becdf9ecf244a8f3a04e077c60fcb8b8a0d6be2984b555f421 - Sigstore transparency entry: 1005012286
- Sigstore integration time:
-
Permalink:
sakethdevx/ignyx@8d7535fb2917d691c9041bc41add74d8a21ab82d -
Branch / Tag:
refs/tags/v2.1.0 - Owner: https://github.com/sakethdevx
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8d7535fb2917d691c9041bc41add74d8a21ab82d -
Trigger Event:
push
-
Statement type:
File details
Details for the file ignyx-2.1.0-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.
File metadata
- Download URL: ignyx-2.1.0-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 |
b697d75c1f6c15e2c2a53423a7902d552e691425e9c3acb16adca8c4aa5726e7
|
|
| MD5 |
e86f3cba35fe435aa1332ef0af9a3744
|
|
| BLAKE2b-256 |
8c33c3c553b13a504e9f650a58f50b3eeda0ab305ae8205d749f9ede32620964
|
Provenance
The following attestation bundles were made for ignyx-2.1.0-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-2.1.0-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl -
Subject digest:
b697d75c1f6c15e2c2a53423a7902d552e691425e9c3acb16adca8c4aa5726e7 - Sigstore transparency entry: 1005012388
- Sigstore integration time:
-
Permalink:
sakethdevx/ignyx@8d7535fb2917d691c9041bc41add74d8a21ab82d -
Branch / Tag:
refs/tags/v2.1.0 - Owner: https://github.com/sakethdevx
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8d7535fb2917d691c9041bc41add74d8a21ab82d -
Trigger Event:
push
-
Statement type:
File details
Details for the file ignyx-2.1.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: ignyx-2.1.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 895.6 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 |
16183cb1cf7226558b93d4d968576241ec3d20d16f490f171237676f2f90cc92
|
|
| MD5 |
ee09d29fadb3f9cbaaaff916453cc053
|
|
| BLAKE2b-256 |
6bd198f8635c8cc501a00a7edcdb9f0aa4bd292fffe07cf5e671717a4f120ed0
|
Provenance
The following attestation bundles were made for ignyx-2.1.0-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-2.1.0-cp312-cp312-win_amd64.whl -
Subject digest:
16183cb1cf7226558b93d4d968576241ec3d20d16f490f171237676f2f90cc92 - Sigstore transparency entry: 1005012341
- Sigstore integration time:
-
Permalink:
sakethdevx/ignyx@8d7535fb2917d691c9041bc41add74d8a21ab82d -
Branch / Tag:
refs/tags/v2.1.0 - Owner: https://github.com/sakethdevx
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8d7535fb2917d691c9041bc41add74d8a21ab82d -
Trigger Event:
push
-
Statement type:
File details
Details for the file ignyx-2.1.0-cp312-cp312-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: ignyx-2.1.0-cp312-cp312-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 918.8 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 |
94b2792001ccb58e1a55d3a3ebcb946b4188c8d2aa8a72e1dfd73576c5b19327
|
|
| MD5 |
057d23d457b1d0576254e8be5a187428
|
|
| BLAKE2b-256 |
6a96441124aad0aa094e21026f748f9b407067ddf2ee1ed871e65613863874d8
|
Provenance
The following attestation bundles were made for ignyx-2.1.0-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-2.1.0-cp312-cp312-manylinux_2_34_x86_64.whl -
Subject digest:
94b2792001ccb58e1a55d3a3ebcb946b4188c8d2aa8a72e1dfd73576c5b19327 - Sigstore transparency entry: 1005012273
- Sigstore integration time:
-
Permalink:
sakethdevx/ignyx@8d7535fb2917d691c9041bc41add74d8a21ab82d -
Branch / Tag:
refs/tags/v2.1.0 - Owner: https://github.com/sakethdevx
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8d7535fb2917d691c9041bc41add74d8a21ab82d -
Trigger Event:
push
-
Statement type:
File details
Details for the file ignyx-2.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: ignyx-2.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 887.0 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 |
2d9b7e4cf5834978f2080db73d88bc60586a5d12b004f981231d28e10436a9d7
|
|
| MD5 |
485ad6ef092737fe5c48890ef6e52863
|
|
| BLAKE2b-256 |
084abfc15a4d6b45e9eced4ee5920564ae384eadb28241cd88d620cf4ab13caa
|
Provenance
The following attestation bundles were made for ignyx-2.1.0-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-2.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
2d9b7e4cf5834978f2080db73d88bc60586a5d12b004f981231d28e10436a9d7 - Sigstore transparency entry: 1005012303
- Sigstore integration time:
-
Permalink:
sakethdevx/ignyx@8d7535fb2917d691c9041bc41add74d8a21ab82d -
Branch / Tag:
refs/tags/v2.1.0 - Owner: https://github.com/sakethdevx
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8d7535fb2917d691c9041bc41add74d8a21ab82d -
Trigger Event:
push
-
Statement type:
File details
Details for the file ignyx-2.1.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.
File metadata
- Download URL: ignyx-2.1.0-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 |
c89507dbf3b8eef45c6db1749251568ea59debe5addbefa5cc9a16f55bf8093b
|
|
| MD5 |
74e91c9782b90c2eae11ca2c0132520d
|
|
| BLAKE2b-256 |
619c42a47e7b45b45c6dcec6f467d032b496d0c26fd7c4bf66699a66e1199e75
|
Provenance
The following attestation bundles were made for ignyx-2.1.0-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-2.1.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl -
Subject digest:
c89507dbf3b8eef45c6db1749251568ea59debe5addbefa5cc9a16f55bf8093b - Sigstore transparency entry: 1005012370
- Sigstore integration time:
-
Permalink:
sakethdevx/ignyx@8d7535fb2917d691c9041bc41add74d8a21ab82d -
Branch / Tag:
refs/tags/v2.1.0 - Owner: https://github.com/sakethdevx
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8d7535fb2917d691c9041bc41add74d8a21ab82d -
Trigger Event:
push
-
Statement type: