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.0b2.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.0b2-cp313-cp313-win_amd64.whl (3.2 MB view details)

Uploaded CPython 3.13Windows x86-64

aquilia-1.4.0b2-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.0b2-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.0b2-cp313-cp313-macosx_11_0_arm64.whl (3.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.15+ x86-64

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

Uploaded CPython 3.12Windows x86-64

aquilia-1.4.0b2-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.0b2-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.0b2-cp312-cp312-macosx_11_0_arm64.whl (3.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.15+ x86-64

aquilia-1.4.0b2-cp311-cp311-win_amd64.whl (3.2 MB view details)

Uploaded CPython 3.11Windows x86-64

aquilia-1.4.0b2-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.0b2-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.0b2-cp311-cp311-macosx_11_0_arm64.whl (3.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.15+ x86-64

aquilia-1.4.0b2-cp310-cp310-win_amd64.whl (3.2 MB view details)

Uploaded CPython 3.10Windows x86-64

aquilia-1.4.0b2-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.0b2-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.0b2-cp310-cp310-macosx_11_0_arm64.whl (3.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

aquilia-1.4.0b2-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.0b2.tar.gz.

File metadata

  • Download URL: aquilia-1.4.0b2.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.0b2.tar.gz
Algorithm Hash digest
SHA256 cb549b0fbda2922a937ad2c8c0a297aa3d37d4e3913109436af7ccb665c8db59
MD5 b4842209d280f1fbf987553ea35ecde4
BLAKE2b-256 e0553d7a1f7777aa3cd010016d0fb1971b2389cfb45bc71d02b70747293c2cd5

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b2.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.0b2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: aquilia-1.4.0b2-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.0b2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8ad46ab9e442b4ac2d894c53998e79c1c1b12fa118e66f9f06e43a99a682f32b
MD5 3f0bd1d7e06aa84f007697c57957cdf1
BLAKE2b-256 6268a73e69ef853df01f4e8a5599065840f6de19cfb7487886cb357637c12d29

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b2-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.0b2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 31eca7b699ede3ed2150ab5c7045892adb0671dbebd49d991d5cd48f3e183d27
MD5 40b1b3a3d002762e54a0c7508db7436b
BLAKE2b-256 fd615463f2521326e4e6804226e45df70c7eb2608a39ab7c2317a2e7e3bc0151

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b2-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.0b2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0806794b0904e52680c651715ba60c3bd10c452c92bae802502d8dac54dd5f48
MD5 2bc2a0abeb38fca70d575e99d3c2c582
BLAKE2b-256 18a434fc065b4dec69aca3301c95a6481595369c24620fb8385e1b98b6483296

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b2-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.0b2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6fabaf3e5caa3b39c83f4386d1a85c46d99c1c6f487af2ed7733621fc6588b6b
MD5 409f6eadabe27f32cb68268d0b2556a1
BLAKE2b-256 a18d2229f85b88cabe9c79b77375a0091760ea6295877c3a2d4009bd073cbffd

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b2-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.0b2-cp313-cp313-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b2-cp313-cp313-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 353653b7a61d7830fb5b4fd090af9ec446fe67918997e749b98085e8ed28c21d
MD5 330734fd6f406b181bfe104c86131327
BLAKE2b-256 32ff74bc0cfb21b778cd5e7c864dcb8d25a960f7c51e57b26e36eb92fd06f149

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b2-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.0b2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: aquilia-1.4.0b2-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.0b2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 acab6ba57b063dc0a8d1155cfc9eda0783431c7cd80ea174bbb5111a3c1d2d8a
MD5 aea60780299d92f3b8f2877b2d2c8756
BLAKE2b-256 4bad9694e90614da97722122c39389dc13bbba468df8feea3f3e1941199295c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b2-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.0b2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cd8d706d0679bca4e75df4f4bb1d6c111a6be57d9b3b876713d7a735c0d378ef
MD5 c18b8438751e7777a33086d0119f6b50
BLAKE2b-256 e7627ac81ff9c8c87f10335919d04cb91e50d66b67af60e3121823dcbeecdec3

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b2-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.0b2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ffa09c1401415f3a3d95fd21b0b1cfb48937de716a959fdaa2035fa665572a12
MD5 3f0298537b1ecf621027358326fbab1a
BLAKE2b-256 90f48bfdcac1963298ca8b24eeac348745df1e600a8ab6fc1f517b96fd003164

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b2-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.0b2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dc3bf3cf4526a35369763e6d356d3e48e970f88f9a23256897f8e03edf2db30d
MD5 eb233fea14c14c8e17f1c191ab8c2937
BLAKE2b-256 d4972710fced0b16dc5c1d31f749484db024f8fe46f727b67af9ebf19f6c65d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b2-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.0b2-cp312-cp312-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b2-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 5543da3c5402849504ff93e8372cd85e2be44d162ed277b941f60812cf700214
MD5 fe02c1704307d62cf54c715336994af2
BLAKE2b-256 5d0399a8fcd52aa74385be33fc9e049ede9dd713150ea59b9501043fdaf83d17

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b2-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.0b2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: aquilia-1.4.0b2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 3.2 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.0b2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 688dcbff3853532cd460352e73bd09989e95c1bdb60258fb9700cbb5361d7317
MD5 47a611e292218ea093cf49a63d0d40b5
BLAKE2b-256 189fd36d1854903770d3c7dfc37f520b3ee486ffceb80367a2e4b7ec695d0692

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b2-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.0b2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 424f725b2901bd3a0937876c7197650f7ecd7ea64ac505da28d46ad09a885ce0
MD5 127a703a66bec59548878c039b1f94eb
BLAKE2b-256 28fbdbc6e70815193c1a3bf623909dcf623e52ec7f90f7d8ce0e3296baa3fde0

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b2-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.0b2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e90627e99d7d96cec09dfb4bdf463b2081eb181b54b59fd6946aeda71ae3ffa4
MD5 befdf00cb42e317c88ab58af0e81566b
BLAKE2b-256 386448bcd010179539ad7be383eacc7e80b7e2d866e0ed54b0230bf32168ffb6

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b2-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.0b2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4a26aa22375b9d8b8a20ef86a1e992f494288ef5d1001974d0df5bd04a9f691c
MD5 d5a93c084aa1614e00b311a1659c36b8
BLAKE2b-256 00d30523ba6aab3ea5c31387be11a338c3ac9afd844614e1a839ee5ba9ae670a

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b2-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.0b2-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b2-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 446b6400fc0f6f24a0a983615a1f5c430aa7964dba7789f8c3089d929ee80d0d
MD5 e82468fbeb9c2af7418ac2f1c0b82180
BLAKE2b-256 02006491c5716c3b0f8c838adff099aab82bbaf0fb2626dda35af0f9cd3ea766

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b2-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.0b2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: aquilia-1.4.0b2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 3.2 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.0b2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f7c13bef146047e6e71bb9f47f4eb470384104fa1596cecf6ea78b3fca156c12
MD5 b504dfd0d751513801f9e44e0b742b73
BLAKE2b-256 abe5e2feea9b9ece67ab7491083bc2cb7231df60187c7598a34b76b1c44e3800

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b2-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.0b2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f41680bd244782884942232c79fd75c2f6dc080293eebf022beef00316dfb211
MD5 a078bfcd1036f8d5755cdc2982537d3d
BLAKE2b-256 4529aba9d6f75bc0b3f1dd0cf5403dbd9c76aaf81c4c017c73ed2586bb803e31

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b2-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.0b2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2d91dbd969a5cd04efe57fd42509e2a3b279609aa882b0125cb26194b192af19
MD5 98a91b8dc28bd0be453947ca3bdba43e
BLAKE2b-256 7b15bd59cb8213978906ece19b72fcf4475de7e5de308bb3b141933103857fa8

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b2-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.0b2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b946ce1623eee07f7c91a1ae59b5ee04bfacadcfa5ad7dd571d4cb060e378d86
MD5 e67ec17132b29ea35b8a5da731581dca
BLAKE2b-256 09812bd279cab061b7f4610404bd2295db6fffe5226247ac4e86bb660f281930

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b2-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.0b2-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for aquilia-1.4.0b2-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 4e9fe91ab46d20e2eed1639f1ab1929c4463cacc28251a66030cd2cdba60ec55
MD5 cb38ad7b429623bdc219d54cd1cfd30a
BLAKE2b-256 131d8d2e5b1b72aa0c0f8eb11539e592ca7c5dfcf84636362da72fe2b69061d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquilia-1.4.0b2-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