Aquilary Registry — Aquilia Documentation
Comprehensive guide and documentation for Aquilary Registry in the Aquilia framework. View API reference, examples, and implementation patterns.
ADVANCED / AQUILARY REGISTRY Aquilary Registry The Aquilary is Aquilia's manifest-driven module registry. It manages module declaration, resolves dependencies topologically, indexes route structures, and generates secure cryptographic fingerprints to enable deterministic hot-reloads. Two-Phase Registry Lifecycle To prevent import-time side effects and keep development tooling fast, Aquilia separates registry instantiation into two distinct phases: APPMANIFESTS Declarative inputs MANIFESTLOADER Safe loading (no imports) VALIDATION & GRAPH Cycles & Route conflicts AQUILARYREGISTRY Fingerprinted static state AUTO-DISCOVERY Lazy class load & scan RUNTIMEREGISTRY ASGI server compilation 1. Static Validation Phase Executed by AquilaryRegistry . Reads manifest files without importing controllers or services. It checks route conflicts, resolves dependency cycles, and computes the load order topologically. 2. Lazy Compilation Phase Managed by RuntimeRegistry . Active only when bootstrapping the live ASGI server. Performs runtime package scans, imports user code, compiles route trees, and builds DI containers. Workspace Integration Your workspace structure declares the relationships between modules. Here's a clean workspace instantiation: from aquilia import Workspace, Module from modules.users import UserController, UserService from modules.products import ProductController, ProductService workspace = Workspace( modules=[ Module("users", controllers=[UserController], providers=[UserService]), Module("products", controllers=[ProductController], providers=[ProductService]), Module("orders", controllers=["modules.orders.controllers:OrderController"], providers=["modules.orders.services:OrderService"], imports=["users", "products"], # Declares load dependency ), ], ) CLI Validation Tooling The CLI operates directly on the static metadata phase, inspecting the registry without importing user classes: # 1. Validate manifest structure and dependency safety aq validate # 2. Inspect route structures aq inspect routes # 3. View module dependencies aq inspect modules Middleware Manifest System )
Go to Homepage