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.0b1.tar.gz (19.9 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.0b1-cp313-cp313-win_amd64.whl (3.2 MB view details)

Uploaded CPython 3.13Windows x86-64

aquilia-1.4.0b1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.2 MB view details)

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

aquilia-1.4.0b1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (3.2 MB view details)

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

aquilia-1.4.0b1-cp313-cp313-macosx_11_0_arm64.whl (3.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

aquilia-1.4.0b1-cp313-cp313-macosx_10_15_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.13macOS 10.15+ x86-64

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

Uploaded CPython 3.12Windows x86-64

aquilia-1.4.0b1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.2 MB view details)

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

aquilia-1.4.0b1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (3.2 MB view details)

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

aquilia-1.4.0b1-cp312-cp312-macosx_11_0_arm64.whl (3.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

aquilia-1.4.0b1-cp312-cp312-macosx_10_15_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.12macOS 10.15+ x86-64

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

Uploaded CPython 3.11Windows x86-64

aquilia-1.4.0b1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.2 MB view details)

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

aquilia-1.4.0b1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (3.2 MB view details)

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

aquilia-1.4.0b1-cp311-cp311-macosx_11_0_arm64.whl (3.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

aquilia-1.4.0b1-cp311-cp311-macosx_10_15_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

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

Uploaded CPython 3.10Windows x86-64

aquilia-1.4.0b1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.2 MB view details)

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

aquilia-1.4.0b1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (3.2 MB view details)

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

aquilia-1.4.0b1-cp310-cp310-macosx_11_0_arm64.whl (3.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

aquilia-1.4.0b1-cp310-cp310-macosx_10_15_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

File details

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

File metadata

  • Download URL: aquilia-1.4.0b1.tar.gz
  • Upload date:
  • Size: 19.9 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.0b1.tar.gz
Algorithm Hash digest
SHA256 7983f45af7b7ba3258059e455ceddbf1f4f834313e33098661bcbcb0c1f37a61
MD5 953d34f6557114519d8cec1a07299842
BLAKE2b-256 a7f9040e3dfbcd4cfb4f6599bff68d6cab810aebc6368590d5a7152be8bb6060

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: aquilia-1.4.0b1-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.0b1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c429d6042fc48018c9d133f699448f91cddf8250c27f9f7e9838d7b2f40d4e58
MD5 7bf259d87d261bf4481ee69da75ba3b5
BLAKE2b-256 552d7dcca621823e03e7d66ed67f9c4e19910446f9b6bd7553e101973b130626

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aquilia-1.4.0b1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 80f8b13ae0ea64beaebb0f672c158eb31b203f0ef12b7623ce3bfe0caabdf737
MD5 0018c5336682b21b5a01ff4810c07227
BLAKE2b-256 2e2664e1a45ded16593f380aed8d60b9a66cc68e2759780c59547175082b039f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aquilia-1.4.0b1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3530df254308b7987e54a534c09c71107fa7caafae6be52135d1203ce16fb9ba
MD5 9fe1246864c68b9891112d0e614d0424
BLAKE2b-256 9ea5282063f627804da8e6a009d77e5e11c67698c36072f1d1d94e7f1b11ccfd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aquilia-1.4.0b1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d5aff53e08e52b82ef3be5985541a4783d57ee6157f05fca4fa6ff7a4cca32f9
MD5 880000a856e057403e310065b2c15025
BLAKE2b-256 05c84489c653f20964f9102ff461bf0a01c9ecce1375f85d609cec4fc4802563

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aquilia-1.4.0b1-cp313-cp313-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 e92a3fb7c8559e5c4c76286012ea8bda6eece8ae2513a9aa1912a3e9019c9bd6
MD5 3ee8eff17615dd41abfc862935c8958e
BLAKE2b-256 9977fbb59e168e0b3a4a06109537accdd08175ef8fbd92de6d9269f571697e53

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: aquilia-1.4.0b1-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.0b1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7737887e434156600b2f9ec34e010f4456951c11d3f8851c78a6f30da61e3422
MD5 21491bbb51c1be98e75427b9279d9dfd
BLAKE2b-256 33b328ae7a42902bc17b61bb72dfef463b20d83bcc7000ea3470193f465d8718

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aquilia-1.4.0b1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b112f10b05cc7030c4f1017eb4c1204d1f35a70301ca081bde3d8ea82a852b43
MD5 27607a04d906efa2d571349f41ca3a6d
BLAKE2b-256 59f8654f8de4d604b4763f389dddb4785f79896f6137a692d6eed7336774b414

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aquilia-1.4.0b1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e92e88d148f886fe5f149c6d3b724c7ff3e021b56a37c1ef22cfaf03c27f01c8
MD5 a1292bdd80c1502e363dbc7b8ac5dcd3
BLAKE2b-256 eaaa5d4b1ce2e929240ce697c9e97dfc794501147a530e43cbdf11d275ed6152

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aquilia-1.4.0b1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b1bbe0410157aa43e88f914b88fbf8efc81d457727a8a819381643f731d7f596
MD5 f6236c11c7b25684d7e2f5edcd9e6a4a
BLAKE2b-256 5bd92976b6c2ca7d7ead15619fe4d507109ac68cf2f909c420476a00c917bc95

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aquilia-1.4.0b1-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 2b2bc0715492ef1f6019d29995ef5bc049b0712c7738b5c1b28f6434b03efa9b
MD5 0dee832c60a19c626a114e7b85ea54c4
BLAKE2b-256 ca382020ed9d116381e0e3e83c1aef6d749ebec9cc5b1cfa66fd34eb99b89590

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: aquilia-1.4.0b1-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.0b1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 84d2d631c72f37257bfbe51c6580f676d03eb908731aaedbde3456951fa50c47
MD5 25d8911d721f6196538433edbd6608f6
BLAKE2b-256 bd2ceed185fbc1f2ce084d9e1ea5090c2109e028597a01e14b14caa7d0e86ece

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aquilia-1.4.0b1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 482327412dedf0ed39148f2d82e1daac434c9688c8f17b25e61f798f5e587f4d
MD5 57315b8fec7f9a8616928f9651356601
BLAKE2b-256 ad1374fa480ded0b24f369b14e708b4d7f630203bba4b4de6f62bef1d3985dde

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aquilia-1.4.0b1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 25f874519fb76bf1f846d7a06a6a4b7fb3612f19dfdad1619d8a7b9009df8330
MD5 1e34ad9c8cb75b920366eeb8deece08c
BLAKE2b-256 b40b9296e6a1187b9ec0d119de4cbf35edeef65961d29a0a4dcc772c65d9305e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aquilia-1.4.0b1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4d0aca0fd4642ddf819c9e23ff6c4d9515f53426135f8458f8e62e530aef616d
MD5 b546301c0aa36a90654c46bde846a90a
BLAKE2b-256 96fe161ecccfebbb543dad2aed25b880d28b4ec9c84a9a563883af29f790e3cc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aquilia-1.4.0b1-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 93e1249b3d5867f5741669bbc5b72c5926af84f0075a5e9207c9a18941420764
MD5 65725a0be8db21dfb9ef04b93f9c3552
BLAKE2b-256 c289eb8389181cbafc9aaf296e343f48ea72926d2cd80c11618c36e37ced79b2

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: aquilia-1.4.0b1-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.0b1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e7c169dfdaec893495e7bdd99d88da4c94896e64ebe95fc0c3549fc566048688
MD5 b0b5b3feedf11102d14aa40990750612
BLAKE2b-256 8eb1d87ea04f0578785141b9c5586e3afc557daee3a0e52f4b55b632aef90600

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aquilia-1.4.0b1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0214a6d4aa9129928ecf12e57874e84235c16534ac352590552763ca760b3654
MD5 750b1d0847984072b83a23adaa08e457
BLAKE2b-256 6900d88fa19209510f77f99aefb0430537dece6214f6773c19c86d9bc5221db1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aquilia-1.4.0b1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 04b859566d6d39b9ebdb51e2c495c8ef5b239e0eb9044fa318d9159d60f9e2ec
MD5 3a5f8eb5dad0332c0aa59d9541a4ec3d
BLAKE2b-256 3f6c62bd3529555fca6b4f855240acab794c26127d0c8fd9cb165cd9c449483c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aquilia-1.4.0b1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bf4afe9788e88392a5a44e3cd25ce1e24ac52e1bea1a4a4ee5b6757a7c600546
MD5 610e110a6efe90afe113cf6bc512b9c6
BLAKE2b-256 3fa15c61e95831a59064333c4989f6064a4bf029a07098762f4f042b86b118e5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for aquilia-1.4.0b1-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 f461ade1eb0f277622a884991046e872fa0ea81f49bdc4c2aef31a67e6eb1ff3
MD5 0fc85be5aa836f7386ee23b3bf012fab
BLAKE2b-256 d1d4c24b8350db7c92491ff6eb59224f56e6fbe984fb7476b691953fd859ce0f

See more details on using hashes here.

Provenance

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