Overview
A3S Boot is a modular framework for asynchronous Rust services. It borrows the module, provider, controller, and enhancer organization of NestJS while preserving static types, explicit ownership, and replaceable adapters.
Boot is not an Axum wrapper. Requests, responses, routes, execution contexts, and errors belong to the framework core. Axum is the default HTTP adapter. Attribute macros generate ordinary Boot definitions at compile time and do not depend on runtime decorator metadata.
Where an application starts
A Boot application follows one explicit construction path:
Core guarantees
- Providers use typed or named tokens and respect module import and export visibility.
- Singleton, request, and transient scopes propagate explicitly through the resolution graph.
- HTTP, WebSocket, and message handlers use a consistent guard, interceptor, pipe, and exception model.
- Generic interfaces do not hide the behavior of the selected network protocol or message broker.
- Optional capabilities are Cargo features, so disabled service dependencies do not enter the build.
BootErrorandResult<T>consistently represent module, resolution, routing, validation, transport, and runtime failures.
What Boot owns
Boot owns the application graph, execution order, and adapter contracts. It does not select deployment policy for the application.
Choose an entry point
BootFactory provides four common entry points:
createbuilds an HTTP-capable application.create_application_contextbuilds a provider-only worker or command process.create_microservicebuilds a standalone message service.- Their async variants await asynchronous provider factories.
The same module graph can be configured explicitly through BootApplication::builder() with global enhancers, OpenAPI, and adapter options.
Current documentation version
You are reading A3S Boot v0.1.4, which documents crate release 0.1.4. v0.2.0 and v0.1.4 expose the same Boot capabilities. The release difference is the A3S ORM version used by the persistent PostgreSQL queue.
Next steps
Read installation and features, then complete the quick start. Continue to the application model when you are ready to split business modules.