The complete async-first Python framework

Orionis Framework

Stop assembling.
Start building.

HTTP, realtime, data and AI. One cohesive foundation for your next great Python application.

Rust-powered. Async by design.Python 3.14+
One framework. Every layer.
HTTPWebSocketSSERealtimeORMCacheQueuesMCP

The developer experience

Expressive code.
Unmistakably Python.

Clear classes, type annotations and well-defined responsibilities. Reactor generators give every component a consistent starting point.

  • Your types are the contract

    Schemas, arguments and services with Python annotations.

  • Async from day one

    The same way of working in HTTP, jobs and tools.

  • Your logic, with its dependencies

    The container resolves services for each execution.

app/http/controllers/status_controller.py
Python 3.14+
from orionis.http import JSONResponse, response
from orionis.http.base import BaseController

class StatusController(BaseController):

    async def index(self) -> JSONResponse:
        return response.json({
            "framework": "Orionis",
            "status": "ready",
        })
Creation command
python -B reactor make:http-controller StatusController --api

The framework, connected

A complete foundation.
An advantage at every layer.

From your first endpoint to background work and AI clients. Components designed to share contracts, configuration and application lifecycles.

WebSocket / SSE

Keep the conversation open.

Live dashboards, progress updates and long-lived connections belong in your framework, not in a separate stack.

  • WebSockets on ASGI and RSGI
  • Typed ServerSentEvent encoding
  • Streaming, disconnect handling and configurable budgets
Async Active Record / ORM

Your data. A fluent language.

Express your domain through models, relationships and fluent queries. Engine-neutral plans keep application code independent of the SQL dialect.

  • PostgreSQL, MySQL, SQLite, Oracle, SQL Server and Amazon Redshift
  • Eager loading, pagination, scopes and soft deletes
  • Migrations, transactions and model factories
Cache / Five backends

Do the work. Reuse the result.

One asynchronous API for cache-aside reads, batch operations and backend-aware locks. Stores initialize only when you need them.

  • Memory, file, Redis, Memcached and database
  • TTL, counters and remember resolvers
  • Source-aware caching for compiled artifacts
Queues / Reliable jobs

Move the work off the request.

Dispatch serializable jobs, inject their dependencies and let durable workers handle retries. Every execution gets its own application scope.

  • Sync, database and Redis drivers
  • Delays, retry backoff, timeouts and leases
  • Primitive job payloads, without arbitrary unpickling
Native MCP / HTTP + STDIO

Make your application agent-ready.

Expose your application to AI clients with typed tools, resources and prompts. The same compiled server definition works across transports.

  • Tools, resources and prompts as Python classes
  • Schema validation and dependency injection
  • HTTP, STDIO and an in-process testing client
Container / Providers / Facades

Architecture that grows with you.

Type annotations connect your services. Explicit lifetimes and eager or deferred providers keep dependencies predictable from controllers to jobs and tests.

  • Singleton, transient and context-local scopes
  • Automatic callable and constructor injection
  • Replaceable contracts and lazy service facades

Clarity by design

Built to fit together.
Ready to grow with you.

A request has a journey. A service has a lifetime. Compiled plans and explicit responsibilities keep your application clear as it grows.

  1. Request
  2. Route
  3. Middleware
  4. Controller
  5. Response

A scope for every execution

HTTP, jobs and commands keep dependencies local to their execution context.

Work prepared ahead of time

Routes, schemas and dispatch plans are compiled to reduce repeated work.

Replaceable contracts

Swap service implementations without mixing infrastructure and business logic.

bootstrap/app.pyOne application, one explicit configuration entry point.

The pieces that complete your product

And the rest? Already here.

Authentication, mail, files, testing and operational tools. The capabilities a real application needs, integrated into the same architecture.

Auth & permissions

Sessions, personal tokens, roles, permissions and resource policies.

Typed schemas

Compiled constraints, nested error collection and async validation rules.

Storage, anywhere

One async API for local files, S3, Azure Blob and Google Cloud Storage.

Expressive mail

Reusable mailables, templates, attachments and SMTP or custom transports.

Reactor CLI

Scaffold components, register commands and run workers from one entry point.

Persistent scheduling

Schedule registered commands with the integrated scheduling service.

Application-aware tests

Async unittest cases, injected services, Rich results and MCP integration tests.

Async views

Server-rendered templates connected to routes, sessions and localization.

Lazy sessions

Server-side state, flash data and secure identifiers, activated on first write.

Hashing & encryption

Argon2id, bcrypt and application-keyed AES-CBC or AES-GCM encryption.

Logging & configuration

Lazy rotating log channels, typed environment values and validated configuration.

Built-in localization

JSON translations, fallback locales, replacements and plural forms.