Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Aquilia Logo

Aquilia

The Python framework for teams building production APIs. Write controllers and services. Aquilia discovers everything, manages its own architecture, and deploys itself.

Version License Python Tests


Introduction

Aquilia is the Python framework for teams building production APIs. Write controllers and services. Aquilia discovers everything, manages its own architecture, and deploys itself.

You do not touch most framework-managed files. Write your controllers and services. Run aq serve. Aquilia handles routing, discovery, dependency injection, manifests, runtime orchestration, Docker integration, deployment tooling, and application wiring automatically.


Architecture

Decouple your application code from runtime orchestration. The system is split into three main components: developer space, framework engine, and infrastructure templates.

Aquilia High-Level System Architecture


Who is it for?

Aquilia is built for backend engineers and product teams who have outgrown the ad-hoc patterns of small web libraries. If you are tired of writing routing boilerplate, manually stitching dependency trees, wrestling with ASGI lifespans, or maintaining custom Dockerfiles, Aquilia provides a clean, self-organizing architecture.

Why does it exist?

Most Python web frameworks follow a microframework design. While this is great for small scripts, it falls apart in large codebases. Teams end up creating their own framework layers for database transactions, configuration loading, caching, versioning, and dependency injection. These layers are rarely documented, hard to test, and lead to maintenance debt. Aquilia replaces this custom glue code with standard, convention-driven structures.

Comparison Against Flask and FastAPI

Flask and FastAPI are microframeworks. They require you to manually import and wire every router, database connection pool, and service instantiation. As your codebase grows, this leads to large, fragile import loops. Aquilia is different. You declare your controllers and services, and Aquilia discovers and wires them automatically.

Comparison Against NestJS

Aquilia is closer to NestJS for Python. It uses a structured, modular design where folders represent logical boundaries (modules). Modules declare their components (controllers and services) inside a manifest file, and the framework orchestrates dependency injection, middleware ordering, and lifecycle hooks automatically.


Philosophy

Convention over Configuration

We believe developers should focus on business logic rather than wiring code. Aquilia sets logical defaults for directory structures, routing, configuration caching, and environment variables. If you follow the folder structure, everything works out of the box.

Automatic Discovery

Manual route registration is a common source of bugs and circular imports. Aquilia uses a Package Scanner to inspect your workspace, identify manifests, import modules, and register endpoints.

Self-Managing Architecture

The framework builds a topological dependency graph at startup. It detects circular references before your application starts, manages request-scoped lifecycles, and automatically compiles your code into optimized deployment manifests.

Production-First Design

Aquilia comes with production essentials built in:

  • Scoped dependency injection with singleton, app, and request scopes.
  • A structured fault handling system that replaces unhandled tracebacks with typed error domains.
  • Declarative multi-dimensional security clearances.
  • API versioning with RFC-compliant sunset warning headers.

Quick Start

1. Install the Core and Server Adapters

Install the base framework along with the production server package:

pip install "aquilia[full]"

2. Scaffold a Workspace

Create a new workspace using the CLI:

aq init workspace my-api
cd my-api

This generates your workspace root containing workspace.py, a config/ folder, and a default module.

3. Add a Module

Add a user management module:

aq add module users

This creates the following structure:

modules/
└── users/
    ├── __init__.py
    ├── controllers.py
    ├── manifest.py
    ├── models.py
    └── services.py

4. Run the Development Server

Start the server with hot reloading enabled:

aq serve

Your API is now running on http://127.0.0.1:8000.


Developer Workflow

What Files You Write

As a developer, you only write code inside your modules:

  • Controllers (controllers.py): Define your HTTP and WebSocket endpoints using route decorators.
  • Services (services.py): Implement business logic, database operations, and external API calls.
  • Models (models.py): Declare your database schema using the pure Python ORM.
  • Contracts (contracts.py or inline): Define input and output contracts using typed validation facets.

What Files Aquilia Manages

You do not touch configuration orchestrators, route tables, or deployment templates:

  • Workspace Config (workspace.py): Scaffolds integrations once, then left alone.
  • Module Manifests (manifest.py): Updated automatically by the CLI when you add components.
  • Infrastructure Dockerfiles (Dockerfile, docker-compose.yml): Generated automatically by the compiler.
  • ASGI Lifespan Adapters: Managed completely behind the scenes by the runtime.

Why Aquilia Exists

The Boilerplate Exhaustion

In standard Python frameworks, introducing a new service requires:

  1. Importing the service class.
  2. Initializing it with database connection handles.
  3. Importing it into a router file.
  4. Mounting the router onto the main app application. In Aquilia, you decorate the service with @service, add it to the manifest, and inject it into your controller constructor. The framework handles the rest.

Deployment Drift

Writing custom Dockerfiles and Kubernetes manifests leads to configuration drift. Developers often write configurations for local development that do not match production settings. Aquilia solves this by compiling your code directly into production-grade infrastructure configurations.


Feature Overview

Controllers

Controllers handle incoming HTTP and WebSocket requests. They are declared as classes inheriting from Controller and define routes with decorators like @GET or @POST.

from aquilia import Controller, GET, RequestCtx, Response

class UsersController(Controller):
    prefix = "/users"
    
    @GET("/")
    async def get_all(self, ctx: RequestCtx):
        return Response.json({"users": []})

Services

Services hold your business logic. They are decorated with @service and are automatically registered in the dependency injection container.

from aquilia import service

@service
class UserService:
    def get_users(self):
        return []

Dependency Injection

Aquilia supports nested dependency injection. You can inject services into controllers or other services by specifying them in the class constructor. The DI container resolves dependencies at startup.

class UsersController(Controller):
    def __init__(self, user_service: UserService):
        self.user_service = user_service

Contracts

Contracts define request validation schemas. They use facets to enforce constraints on incoming bodies, query parameters, and headers.

from aquilia.contracts import Contract, TextFacet, EmailFacet

class CreateUserContract(Contract):
    username = TextFacet(min_length=3, max_length=50)
    email = EmailFacet()

ORM

The built-in ORM provides an async database mapper with a chainable query builder, migrations, and transaction controls.

from aquilia.models import Model, CharField, EmailField

class UserModel(Model):
    username = CharField(max_length=50)
    email = EmailField()

Effects

Effects represent external side effects like database writes, caches, or task queues. Handlers declare these requirements using the @requires decorator, prompting the runtime to allocate resources automatically.

from aquilia.effects import DBTx, CacheEffect
from aquilia.flow import requires

@requires(DBTx("write"), CacheEffect("users"))
async def update_profile(ctx):
    db = ctx.get_effect("DBTx")
    cache = ctx.get_effect("Cache")

Flow

Flow is a pipeline system inspired by functional effect architectures. It lets you compose guards, transforms, handlers, and cleanup hooks into structured pipelines.

from aquilia.flow import FlowPipeline, guard, handler

pipeline = (
    FlowPipeline()
    .use(guard(check_permissions))
    .use(handler(process_request))
)

Faults

The fault system replaces raw exceptions with structured, typed errors. Every fault carries an error domain, a severity level, and a recovery strategy.

from aquilia.faults import Fault
from aquilia.faults.domains import FaultDomain

class PaymentRequiredFault(Fault):
    def __init__(self):
        super().__init__(
            code="PAYMENT_REQUIRED",
            message="Upgrade your plan to access this feature.",
            domain=FaultDomain.SECURITY,
        )

Middleware

Middleware executes before and after your request handlers. Aquilia uses priority bands to orchestrate middleware execution, including CORS, security headers, sessions, and telemetry.

Runtime

The AquiliaRuntime manages the ASGI server boot sequence. It guides the application through configuration, discovery, bootstrapping, and ready phases.

Versioning

Aquilia supports epoch-based versioning. You can define versions on controllers and set sunset policies that add deprecation warning headers to responses.

from aquilia.versioning import version, SunsetPolicy

@version("2.0")
class UsersV2Controller(Controller):
    pass

Discovery

The discovery engine uses static analysis and import checks to locate module manifests and wire components together without import statements.

CLI

The aq command-line utility provides commands to scaffold projects, generate controllers, run migrations, compile manifests, and validate dependency graphs.

Deployment

Aquilia generates deployment configurations for Docker, Docker Compose, and Kubernetes. It also includes render cloud integration.

Manifests

The manifest file (manifest.py) acts as the module contract. It lists the controllers, services, socket connections, and task configurations within the module.

Aquiliary

Aquiliary is the central app registry. It maps endpoints, validates route overlaps, and manages the dependency injection container.

Lifecycle System

The lifecycle manager runs hooks during application startup, runtime requests, and application shutdown, ensuring database pools and cache clients are properly closed.


Internal Runtime

The internal runtime translates ASGI connection events into structured context calls, routes requests to the correct versioned controller, and manages request-specific dependency containers.

Aquilia Complete System Architecture


Subsystem Lifecycles

Request Lifecycle

Every incoming ASGI connection passes through the middleware stack, matches a versioned controller, runs a flow pipeline with required side effects, and returns a structured response.

Aquilia Middleware Architecture

Dependency Injection Lifecycle

The DI container discovers providers at boot, registers them into container scopes, validates dependencies for circular references, and creates request-scoped DAGs.

Aquilia Dependency Injection Architecture

Middleware Lifecycle

Middleware components execute sequentially based on their priority bands. Post-processing wraps the response in reverse order.

Aquilia Middleware Architecture

Fault Handling Lifecycle

When an exception occurs, the interceptor catches it, maps it to a structured fault domain, evaluates its severity, and generates a formatted JSON response or HTML debug page.

Aquilia Fault Architecture

Contract Lifecycle

Contracts intercept incoming payloads, validate data types using facets, cast raw inputs into typed models, and project outgoing responses while excluding restricted fields.

Aquilia Contract Architecture

Runtime Lifecycle

The runtime orchestrator boots your application through linear gates, verifying configuration health before starting the ASGI server.

Aquilia Runtime Architecture

Deployment Lifecycle

The compiler processes workspace integrations, builds dependency manifests, freezes the active configuration, and generates production Docker or Kubernetes templates.

Aquilia High-Level System Architecture

Manifest Architecture

The manifest lifecycle reads code declarations, analyzes file locations, compiles dependencies, and outputs a frozen runtime registry artifact.

Aquilia Manifest Architecture

Versioning Architecture

The versioning router evaluates incoming headers, queries, or paths to resolve the client's requested version, routes requests to the matching controller, and appends sunset warnings.

Aquilia Versioning Architecture

Flow and Effect Architecture

Flow pipelines acquire required side effects (like database transactions) from providers, bind them to the request context, execute the handler, and commit or rollback changes on completion.

Aquilia Flow and Effect Architecture

ORM Architecture

The ORM maps declarative models to SQL statements, processes queries through connection adapters, and applies schema updates through migration scripts.

Aquilia ORM Architecture

Lifecycle Architecture

Startup and shutdown hooks run in sequence during ASGI lifecycle transitions, initializing and cleaning up shared resources like database pools.

Aquilia Lifecycle Architecture


Examples

1. Controller with Dependency Injection

# modules/products/controllers.py
from aquilia import Controller, GET, RequestCtx, Response
from .services import ProductService

class ProductController(Controller):
    prefix = "/products"

    def __init__(self, product_service: ProductService):
        self.product_service = product_service

    @GET("/")
    async def list_products(self, ctx: RequestCtx):
        products = self.product_service.get_available_products()
        return Response.json({"products": products})
# modules/products/services.py
from aquilia import service
from aquilia.effects import DBTx

@service
class ProductService:
    def get_available_products(self) -> list[dict]:
        return [
            {"id": 1, "name": "Cloud database service", "price": 49.00},
            {"id": 2, "name": "Telemetry collector", "price": 19.00}
        ]

2. Composed Flow Pipeline with Side Effects

# modules/billing/controllers.py
from aquilia import Controller, POST, RequestCtx, Response
from aquilia.effects import DBTx, CacheEffect
from aquilia.flow import requires
from aquilia.contracts import validate_body
from .contracts import InvoicePaymentContract

class BillingController(Controller):
    prefix = "/billing"

    @POST("/pay")
    @validate_body(InvoicePaymentContract)
    @requires(DBTx("write"), CacheEffect("invoices"))
    async def process_payment(self, ctx: RequestCtx, body: dict):
        # Database and cache effects are acquired automatically before execution
        db = ctx.get_effect("DBTx")
        cache = ctx.get_effect("Cache")
        
        # Perform payment logic
        invoice_id = body["invoice_id"]
        await db.execute("UPDATE invoices SET status = 'paid' WHERE id = ?", [invoice_id])
        await cache.set(f"invoice:{invoice_id}", "paid")
        
        return Response.json({"status": "payment_processed", "invoice_id": invoice_id})

3. API Versioning with Sunset Warning

# modules/users/controllers_v1.py
from aquilia import Controller, GET, Response
from aquilia.versioning import SunsetPolicy

class LegacyUserController(Controller):
    prefix = "/users"
    version = "1.0"
    sunset = SunsetPolicy(
        grace_period="90d",
        warn_header=True,
        sunset_date="2026-12-31"
    )

    @GET("/")
    async def get_users_old(self, ctx):
        # Clients will receive a 'Warning: 299 - Deprecated API' header
        return Response.json({"legacy_data": []})

Benchmarks

The benchmark suite compares Aquilia against 8 major Python web frameworks (Falcon, Starlette, Litestar, Sanic, Quart, FastAPI, Django, Flask). Tests were executed on macOS via oha load testing tool (concurrency 50, duration 5s per endpoint) with single-worker ASGI configurations under identical transport loads. Full detailed report is available in benchmarks/report.md.

Application Cold Startup Time

How long the framework takes to initialize routes, build internal engines, and open the HTTP port (milliseconds). Lower is better.

Application Startup Time

Mean Throughput

The average requests per second processed across all 17 HTTP workload scenarios. Higher is better.

Mean Throughput

Mean P95 Tail Latency

Average P95 tail latency (milliseconds) under high concurrency across key endpoints. Lower is better.

Mean P95 Tail Latency

Middleware Scaling Degradation

Percentage throughput drop when stacking 10 custom middleware layers vs 0 layers. Lower is better.

Middleware Degradation

Average Peak Memory Usage

Memory footprint (Peak RSS in Megabytes) under load. Lower is better.

Average Peak Memory Usage

WebSocket Message Throughput

WebSocket roundtrip message throughput (messages per second). Higher is better.

WebSocket Throughput


Comparison Tables

Feature Aquilia FastAPI Flask Django NestJS
Programming Model Controllers / Services Routers / Functions Contract Functions Class / Function Views Controllers / Services
Component Wiring Auto-discovers everything Manual imports / mounts Manual register calls Manual URL patterns list Modules imports array
Dependency Injection Scoped container built-in Function parameter DI None (needs extensions) None (needs extensions) Class injection built-in
Data Contracts Contracts & Lenses Pydantic Models None (needs extensions) Django Forms TypeScript DTOs
Out-of-box DB/Cache Async ORM & Cache built-in None (needs third party) None (needs third party) Synchronous Django ORM TypeORM / Prisma (Node)
Structured Faults Error domains built-in Raw HTTPExceptions Error handler mapping Middlewares / Exceptions Exception filters built-in
Realtime WebSockets Controller events built-in Raw ASGI adapters Needs SocketIO extension Channels extension Gateways built-in
Infrastructure Gen Auto-builds Dockerfiles Manual configuration Manual configuration Manual configuration Manual configuration

Roadmap

  • v1.2.0: Out-of-the-box PostgreSQL connection pooling improvements.
  • v1.3.0: Visual flow pipeline inspector dashboard in CLI.
  • v2.0.0: Dynamic auto-scaling Kubernetes operator integration.

Ecosystem

  • aq-admin: Visual admin panel client.
  • aq-otel: Expanded tracing integrations.
  • aq-mlops: Real-time machine learning model packaging extensions.

Contributing

We welcome contributions. Please read CONTRIBUTING.md to understand our coding standards and pull request workflows.


License

Aquilia is licensed under the MIT License. See LICENSE for details.

Download files

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

Source Distribution

aquilia-1.4.0b3.tar.gz (20.0 MB view details)

Uploaded Source

Built Distributions

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

aquilia-1.4.0b3-cp313-cp313-win_amd64.whl (3.2 MB view details)

Uploaded CPython 3.13Windows x86-64

aquilia-1.4.0b3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

aquilia-1.4.0b3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

aquilia-1.4.0b3-cp313-cp313-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

aquilia-1.4.0b3-cp313-cp313-macosx_10_15_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.13macOS 10.15+ x86-64

aquilia-1.4.0b3-cp312-cp312-win_amd64.whl (3.2 MB view details)

Uploaded CPython 3.12Windows x86-64

aquilia-1.4.0b3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

aquilia-1.4.0b3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

aquilia-1.4.0b3-cp312-cp312-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

aquilia-1.4.0b3-cp312-cp312-macosx_10_15_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.12macOS 10.15+ x86-64

aquilia-1.4.0b3-cp311-cp311-win_amd64.whl (3.3 MB view details)

Uploaded CPython 3.11Windows x86-64

aquilia-1.4.0b3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

aquilia-1.4.0b3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

aquilia-1.4.0b3-cp311-cp311-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

aquilia-1.4.0b3-cp311-cp311-macosx_10_15_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

aquilia-1.4.0b3-cp310-cp310-win_amd64.whl (3.3 MB view details)

Uploaded CPython 3.10Windows x86-64

aquilia-1.4.0b3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

aquilia-1.4.0b3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

aquilia-1.4.0b3-cp310-cp310-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

aquilia-1.4.0b3-cp310-cp310-macosx_10_15_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

File details

Details for the file aquilia-1.4.0b3.tar.gz.

File metadata

  • Download URL: aquilia-1.4.0b3.tar.gz
  • Upload date:
  • Size: 20.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for aquilia-1.4.0b3.tar.gz
Algorithm Hash digest
SHA256 a41b20cfb7bce35faed80c95219fefdc0541ecce71245e68c84b7199b016478c
MD5 15f2ba028595c9a69479040f207ee5f9
BLAKE2b-256 be3a519afa25a3881d98d221583e7e3f6ab6c9671f2405952c22a5615a687071

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b3.tar.gz:

Publisher: release.yml on tubox-labs/Aquilia

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

File details

Details for the file aquilia-1.4.0b3-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: aquilia-1.4.0b3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 3.2 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for aquilia-1.4.0b3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 80a9680211a40a81a88476fc3dddbf9538b20cfa6aac85bcda8351a976834541
MD5 aa45c60e096b4626d8e6480e43cb5bea
BLAKE2b-256 9dce8488b3146d1bef69509fa7e7be23b1f8b182481fc347147a9ecec5e7a837

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b3-cp313-cp313-win_amd64.whl:

Publisher: release.yml on tubox-labs/Aquilia

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

File details

Details for the file aquilia-1.4.0b3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6d72a641e5edc6306125c9e2def3e1710dc2798b1d066da45436a690058a479a
MD5 a115fbae2be5642088598e779c2a9389
BLAKE2b-256 a3cce2f9d066b417e3fa7b450e8e9b9134bdfa58fd5735d8ba2c7b7122f1c78c

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on tubox-labs/Aquilia

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

File details

Details for the file aquilia-1.4.0b3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b801b391dc55e371dc8d33953943230e9492a057e6c56784826af0f1e1e4b7ac
MD5 013b36f1a332518b8be8eeeb319e6a7f
BLAKE2b-256 897c36764cd289872457fa894db52b465842714a40fdead341baab21fd61f865

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on tubox-labs/Aquilia

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

File details

Details for the file aquilia-1.4.0b3-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0043eda60c80d91f82662605954674ce499afbd3ae83f00eac4827b0099d80b7
MD5 0da0d9890a63f8558765f37a568c5877
BLAKE2b-256 3d0a7bcd5ff4749e8c6b18cf1323244ee6262ae26f560f654d3d94c6d46ac0ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b3-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on tubox-labs/Aquilia

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

File details

Details for the file aquilia-1.4.0b3-cp313-cp313-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b3-cp313-cp313-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 f6a74b25c7e9192eadb99247e461091e596b83414eacd2a6a7794369eb06f271
MD5 9de0a9fb30b3340585bf5af502ba6b1f
BLAKE2b-256 7c6257a05d8ca493ec7e810941c4da776e9005da257da3de03ce4967e6b73cd1

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b3-cp313-cp313-macosx_10_15_x86_64.whl:

Publisher: release.yml on tubox-labs/Aquilia

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

File details

Details for the file aquilia-1.4.0b3-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: aquilia-1.4.0b3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 3.2 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for aquilia-1.4.0b3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c88addf873c06bee6ca6122bc91fe031fb15e783c2b4edb86be04c83739e0477
MD5 b20478cfe87911c51fd72f9cf403ff8c
BLAKE2b-256 2eecc70b42b9d96ad043c5279826f144c8e4036f45f5cec85e4303dbe441e7e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b3-cp312-cp312-win_amd64.whl:

Publisher: release.yml on tubox-labs/Aquilia

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

File details

Details for the file aquilia-1.4.0b3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1257a38d1bafd7eaebf6ba77875df532a4d6460d5226b3bdd045d1780b650c77
MD5 f34fb8a3d50e2e30c2bb24055fb2e954
BLAKE2b-256 2f0d60d3d7d130dedbfb3b6c6ff01d4f1fc155aa133b70421f31f52d593b431f

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on tubox-labs/Aquilia

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

File details

Details for the file aquilia-1.4.0b3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5a5f1d969fb2469054cc66d2914ebbdd1181922a7f65147fe0423a56aa845faa
MD5 91f6660bc3db7aef1b8abe117e6ca325
BLAKE2b-256 ce70c882af1005b302513aca96e2154f4d16ea7049917da2c72d318c921ab268

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on tubox-labs/Aquilia

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

File details

Details for the file aquilia-1.4.0b3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e777ffde3035a8a35e8cac737fa04de45888a0bcff691eebd83bf89de94eb556
MD5 9d24766596e37c145ffcd8269a11066a
BLAKE2b-256 627261497df736333ea8ff2cdcba7919323895c21808199c6e2a485ed31aacd2

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b3-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on tubox-labs/Aquilia

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

File details

Details for the file aquilia-1.4.0b3-cp312-cp312-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b3-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 0d9530a82ef88aecab49cb5a10f29a2cf2ea0cf90e27288c5901105ba0c619a3
MD5 6962a69465206e9a35f8ee473916b29b
BLAKE2b-256 f127226c0e702dcb02044248a70d7319e6d16977a7d659ce85f8a24b0629d26b

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b3-cp312-cp312-macosx_10_15_x86_64.whl:

Publisher: release.yml on tubox-labs/Aquilia

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

File details

Details for the file aquilia-1.4.0b3-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: aquilia-1.4.0b3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 3.3 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for aquilia-1.4.0b3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5a0584f30fea3ac3f61a227f0966979b24b683724b0391c399a3f03256483c0c
MD5 e1b9cf7989b24f9bd3e75fe1631ceb0c
BLAKE2b-256 c50441d5363f702f10eb0bc81eecb255c5c9a00d644b4eb2d841c8f14c356a6f

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b3-cp311-cp311-win_amd64.whl:

Publisher: release.yml on tubox-labs/Aquilia

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

File details

Details for the file aquilia-1.4.0b3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 47008756535894c81e5e9cb315881671e3bb8adaa900c0bb4add6d0888ebf916
MD5 d2703ea20b5ba5534d40552f7252aa62
BLAKE2b-256 763dcbcfba9f7f1831e577001b5c276a180b77112d37e2d0a98ac3ac0a532fb1

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on tubox-labs/Aquilia

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

File details

Details for the file aquilia-1.4.0b3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e24e7e8c61cc9b93d7b3dccd9b2ca0bfddd9e76d3b8aee2d615796515e20106b
MD5 070af0c6a73d6c1f15f7b68c8c47ddc8
BLAKE2b-256 cf405d99457728bae07ed98883d19b28017b755e11ec787fafe3f2ef015cc4f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on tubox-labs/Aquilia

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

File details

Details for the file aquilia-1.4.0b3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a3d6bbfaae0e80fce535c8ef5122cb54a8857f46ab62d16568bcfcce074b25af
MD5 b572b6315965a54ab840d8241cc4ef5e
BLAKE2b-256 73a5f867067e773a693745c108645bd836f79e5c187af06fda88eb23749dc4ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b3-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on tubox-labs/Aquilia

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

File details

Details for the file aquilia-1.4.0b3-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b3-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 5caeb2357ffc8d1349dbd62b8a56e4b2b42047497d018aa9cdc88a6e2c087c9c
MD5 fa46fb1d4b8d8dd8da8f227db7e61154
BLAKE2b-256 e0142787c6a93cb51b81af1fc2f4223deccfbf6dc615994124a862c3a27759f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b3-cp311-cp311-macosx_10_15_x86_64.whl:

Publisher: release.yml on tubox-labs/Aquilia

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

File details

Details for the file aquilia-1.4.0b3-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: aquilia-1.4.0b3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 3.3 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for aquilia-1.4.0b3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 efedd48396096057b7b1bda14574fb1047dd22283d3b726d541f6b17b78c786a
MD5 0cf1b772a46716fb90aeb7bfb18b8a22
BLAKE2b-256 f1555fdc899c44affa84a619730a65100d29706f3670280bc8b379912d56fc05

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b3-cp310-cp310-win_amd64.whl:

Publisher: release.yml on tubox-labs/Aquilia

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

File details

Details for the file aquilia-1.4.0b3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3f7ced152b2504371a0182e84dc7d906a7c6548a7e4739a618ee21ad912c7384
MD5 ad79508b0bcc65887031d42aeb4901ee
BLAKE2b-256 63b7db85c8002f81850410ca8d7f5e91c886caadd58ddfd9eeab6df88f364ed4

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on tubox-labs/Aquilia

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

File details

Details for the file aquilia-1.4.0b3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a05ef4deeee730208663a5093731ecc5c0a591edf3c386bb5c49662798bd483e
MD5 942349b01b043167065c49d0e240b9c0
BLAKE2b-256 e553eb2ea588b29e24f813a6966c62923301d2a836fe6c756ac12a9120272ba7

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on tubox-labs/Aquilia

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

File details

Details for the file aquilia-1.4.0b3-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1d05cec0392731cce2a9bb9bd1cd47d6025f580ac502e1b666ba2e4c61147aaa
MD5 8c5a7aa20ad4673cab87813d738ca929
BLAKE2b-256 14aa5a449f522df433c2e1cf136c531430e7b425730e614b16f5ba5baaab64ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b3-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on tubox-labs/Aquilia

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

File details

Details for the file aquilia-1.4.0b3-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b3-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 d046002c44437171cf17cc3e8e04f80c9d0b0c7098ae4ab1ef734f1ac6eec036
MD5 23e13534ac77859c1940940bd5b9f7c4
BLAKE2b-256 959c8f213bab8211f591244f4fe6b71e437f94edb31b82a8f09ba1cef0843ef5

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b3-cp310-cp310-macosx_10_15_x86_64.whl:

Publisher: release.yml on tubox-labs/Aquilia

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