Skip to main content

Rust-powered Python web framework — 10x faster than FastAPI

Project description

Ignyx Logo
Ignite your API. Built in Rust, runs in Python.

PyPI version Downloads CI status Coverage Python versions Docs

Ignyx

📖 Full Documentation

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.

Features

  • Blazing Fast: 8-9x faster than FastAPI in standard benchmarks.
  • Zero Overhead: Owns the full HTTP pipeline — no ASGI overhead.
  • Hot Reload: Blazing fast development with built-in file watcher.
  • Pydantic v2: Deep integration for request body validation.
  • Modern API Docs: Ships with Scalar at /scalar, plus Swagger UI and ReDoc.
  • Advanced OpenAPI: Auto-generates schemas with Pydantic model support.
  • Built-in Pagination: Standard limit/offset pagination with typed page envelopes.
  • Dependency Injection: Familiar Depends() pattern for clean logic.
  • WebSockets: Native, high-concurrency WebSocket support.
  • Modular: Organize APIs with Router prefixes.
  • Typed: Shipped with py.typed for perfect IDE autocompletion.

Benchmark

Apple M2, wrk -t4 -c100 -d10s

Endpoint Ignyx FastAPI Speedup
/plaintext 51,771 req/s 5,846 req/s 🔥 8.8x
/json 37,138 req/s 4,844 req/s 🔥 7.6x
/users/{id} 43,261 req/s 5,306 req/s 🔥 8.1x

Note: Ignyx tested with native Rust core. FastAPI tested with Uvicorn single worker — standard config.

Installation

pip install ignyx==3.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, reload=True)

When the app is running, Ignyx serves docs out of the box:

  • Scalar API Reference: http://localhost:8000/scalar
  • Swagger UI: http://localhost:8000/docs
  • ReDoc: http://localhost:8000/redoc
  • OpenAPI JSON: http://localhost:8000/openapi.json

What's New In 3.1

Modern API Docs

Ignyx now ships with a modern Scalar-powered API reference at /scalar by default, while keeping Swagger UI and ReDoc available for teams that want multiple documentation surfaces.

from ignyx import Ignyx

app = Ignyx()

# Defaults:
# /scalar       -> Scalar API reference
# /docs         -> Swagger UI
# /redoc        -> ReDoc
# /openapi.json -> OpenAPI schema

Built-in Pagination

Use paginate() to read limit and offset directly from the incoming request and return a consistent Page[T] response shape.

from ignyx import Ignyx
from ignyx.pagination import Page, paginate
from ignyx.request import Request
from pydantic import BaseModel

app = Ignyx()

class UserOut(BaseModel):
    id: int
    name: str

USERS = [
    UserOut(id=1, name="Ada"),
    UserOut(id=2, name="Linus"),
    UserOut(id=3, name="Grace"),
]

@app.get("/users")
def list_users(request: Request) -> Page[UserOut]:
    return paginate(request, USERS, default_limit=2)

Response shape:

{
  "total_items": 3,
  "next_page": "/users?limit=2&offset=2",
  "items": [
    {"id": 1, "name": "Ada"},
    {"id": 2, "name": "Linus"}
  ]
}

Feature Examples

Pydantic Validation
from ignyx import Ignyx
from pydantic import BaseModel

app = Ignyx()

class User(BaseModel):
    name: str
    age: int

@app.post("/users")
async def create_user(user: User):
    return {"status": "success", "data": user.model_dump()}
Path + Query Parameters
from ignyx import Ignyx

app = Ignyx()

@app.get("/users/{id}")
async def get_user(id: int, format: str = "json"):
    return {"id": id, "format": format}
Dependency Injection
from ignyx import Ignyx, Depends

app = Ignyx()

def get_db():
    db = Database()
    try:
        yield db
    finally:
        db.close()

@app.get("/users")
async def get_users(db = Depends(get_db)):
    return db.query("SELECT * FROM users")
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()
        await ws.send_text(f"Echo: {data}")

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
Hot Reload
Native Rust Core

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.

Documentation Site

The documentation site in docs/ is powered by MkDocs Material and published at:

  • https://sakethdevx.github.io/ignyx/docs/

It now documents the new Scalar API reference and built-in pagination introduced in 3.1.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ignyx-3.1.0.tar.gz (1.9 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

ignyx-3.1.0-cp313-cp313-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.13Windows x86-64

ignyx-3.1.0-cp313-cp313-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

ignyx-3.1.0-cp313-cp313-musllinux_1_2_aarch64.whl (1.6 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

ignyx-3.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

ignyx-3.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

ignyx-3.1.0-cp313-cp313-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

ignyx-3.1.0-cp313-cp313-macosx_10_12_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

ignyx-3.1.0-cp312-cp312-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.12Windows x86-64

ignyx-3.1.0-cp312-cp312-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

ignyx-3.1.0-cp312-cp312-musllinux_1_2_aarch64.whl (1.6 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

ignyx-3.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

ignyx-3.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

ignyx-3.1.0-cp312-cp312-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

ignyx-3.1.0-cp312-cp312-macosx_10_12_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

File details

Details for the file ignyx-3.1.0.tar.gz.

File metadata

  • Download URL: ignyx-3.1.0.tar.gz
  • Upload date:
  • Size: 1.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ignyx-3.1.0.tar.gz
Algorithm Hash digest
SHA256 8a18813a8024c785e16d7d89d695707af6964d2c52be830995df07104653ea5a
MD5 4383e96f1f1e1cdfbdb0517063de47fe
BLAKE2b-256 7cf47a00a7ac4b8eaa7f21ff2eda6091fa74e20fbc929dd58e0e550ff92719a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for ignyx-3.1.0.tar.gz:

Publisher: release.yml on sakethdevx/ignyx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ignyx-3.1.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: ignyx-3.1.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ignyx-3.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 5a83cf15781cf07e36a29d553cc03eb79652ae29ce19de77323245477727b319
MD5 197a3b0831a07fb7c7ab2f32c2e4d7e7
BLAKE2b-256 0efbfe0987b3773bb99d1cf15424614b23d13088a4e5598dc518c26fbbb774a7

See more details on using hashes here.

Provenance

The following attestation bundles were made for ignyx-3.1.0-cp313-cp313-win_amd64.whl:

Publisher: release.yml on sakethdevx/ignyx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ignyx-3.1.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ignyx-3.1.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 afc277e1dc5c07c8b7fba066bcdae4691c30a819a8b88d31575632b699fb67eb
MD5 a2e796735e7f3ff10874ac58034ad64e
BLAKE2b-256 3a64bdcb4e5b984368eba074c37c619cbddec3344e47178ab8941814e799ca07

See more details on using hashes here.

Provenance

The following attestation bundles were made for ignyx-3.1.0-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: release.yml on sakethdevx/ignyx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ignyx-3.1.0-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for ignyx-3.1.0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 df9f14812361f099da4b8b79bbfb9e0c30c483165552a98e3aba77e914f27185
MD5 a87b0da046d6755122dc30a0c8cc28c5
BLAKE2b-256 4ccf9fd99bea950340bba92ccd8e9715287e6f66b97118a1c33ffe44bb960406

See more details on using hashes here.

Provenance

The following attestation bundles were made for ignyx-3.1.0-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: release.yml on sakethdevx/ignyx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ignyx-3.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ignyx-3.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a3a5695ed1209a81319d59b504bc906fa7877f224b430c0041931858d947f2aa
MD5 98914eff0ae125f833c9bae27d727d40
BLAKE2b-256 6d2548c5e7466a9a2dc183ea2da4c8fc359d48d873dd3d421cf285f4181fd46c

See more details on using hashes here.

Provenance

The following attestation bundles were made for ignyx-3.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on sakethdevx/ignyx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ignyx-3.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ignyx-3.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1c42d4b0562030a29d646e76f7d72f0b64849515b92c6a868b6e1b60789a2ac8
MD5 df136852233acc542c8be202f4a4a044
BLAKE2b-256 9e019abf16b1d8c7e993aea67f9a15541113adc105a53b56f425d2352732e424

See more details on using hashes here.

Provenance

The following attestation bundles were made for ignyx-3.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on sakethdevx/ignyx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ignyx-3.1.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ignyx-3.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d46be63bb3df24134d1aac12fc3f3f92451d3df82a4eb45d9d8904f999c0ba25
MD5 c37609e5076d91632942c4a395ff4427
BLAKE2b-256 f5713b7ea5c4575cffab5eda1a0f8ec8aff831b3f76a8a8225a56d6080e8d6d5

See more details on using hashes here.

Provenance

The following attestation bundles were made for ignyx-3.1.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on sakethdevx/ignyx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ignyx-3.1.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for ignyx-3.1.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ac2162324b53cef632b5c8a541fd7b2b6bfac5b5e4cfd8cd7ab3a2e38a668b31
MD5 3b09a3cae5e2803cc26c7fd0dbd8d522
BLAKE2b-256 166b0773cdefe7de20bed9481cc84dba887b717508a0ad7449ad31adee441ebf

See more details on using hashes here.

Provenance

The following attestation bundles were made for ignyx-3.1.0-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: release.yml on sakethdevx/ignyx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ignyx-3.1.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: ignyx-3.1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ignyx-3.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 22c676d0798252b2f7b901f3aadc0b853d555e6b828cec44a1d325013751afbb
MD5 0a08ad051c5a942a56141b6f67c2eba7
BLAKE2b-256 46e5092bc24b9df5c884b53ee65eb0536b75c45b89d3de2a21ce7af94ee6b0b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for ignyx-3.1.0-cp312-cp312-win_amd64.whl:

Publisher: release.yml on sakethdevx/ignyx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ignyx-3.1.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ignyx-3.1.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 73923e9221f4132cfe59c6e1e9d65d6351a1481adf8554c2d90337b142e6eebd
MD5 705c2a1365c91230a2cdae28d7ccfbe5
BLAKE2b-256 b4b5f645fd1b6842c3bcbb45e5851ef8d95d364bb8eb2ecd7a876d56b110326f

See more details on using hashes here.

Provenance

The following attestation bundles were made for ignyx-3.1.0-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: release.yml on sakethdevx/ignyx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ignyx-3.1.0-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for ignyx-3.1.0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9ca0522af948185f21f0b2fd103a1cafa659ca6928675cca3b10030aa87ed516
MD5 08c3da524e2a84cb4ca85351c23e21ac
BLAKE2b-256 39ca70c51d59d775f4bd5d7d4013cd09ef7dd657b73582de9f92b77f3ac0c8ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for ignyx-3.1.0-cp312-cp312-musllinux_1_2_aarch64.whl:

Publisher: release.yml on sakethdevx/ignyx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ignyx-3.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ignyx-3.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3184f1f2f3739a628ebbb48af50fde8e2f53e56b99850425fd2773a252872057
MD5 7f4e2ab02b43ed0826144302bf225172
BLAKE2b-256 9c278abb9ef01798a82daaa12121ac1608040cb444d131be6e2a1b6b65085d7f

See more details on using hashes here.

Provenance

The following attestation bundles were made for ignyx-3.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on sakethdevx/ignyx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ignyx-3.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ignyx-3.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 19abe7748cf1c5ab8ecd91f8bdbaa2156280e9f4dbad7d85f6c82e9359475570
MD5 bf7c38f684c81c3042e01d66b8889561
BLAKE2b-256 6ef931f94612a4655c3f40b4e9b382829c23f21a7ac0737f885c45cfdd305e3a

See more details on using hashes here.

Provenance

The following attestation bundles were made for ignyx-3.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on sakethdevx/ignyx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ignyx-3.1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ignyx-3.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 843c0b99b3c608e131140d0115096347afe5d4ea21f3bce17a41b7aa3c0fdd62
MD5 7c1e853cd537c1826df8d209fcd5d455
BLAKE2b-256 61a48d2fc3b36bfd1daaba124c0bc3c24e118fd3a631ae3f4d10aad2f1dae563

See more details on using hashes here.

Provenance

The following attestation bundles were made for ignyx-3.1.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on sakethdevx/ignyx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ignyx-3.1.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for ignyx-3.1.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 aad78d81eb48c1c621d763ef0b4b72a8b7c3966118a89bdd8966d825e4e822a1
MD5 53bfb414c962f76c5a3a6eee704e9d4b
BLAKE2b-256 fc833329583290b9400fb3f31002729973082d7b90a233d01a15c121007caf07

See more details on using hashes here.

Provenance

The following attestation bundles were made for ignyx-3.1.0-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: release.yml on sakethdevx/ignyx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page