# arcature
`arcature` is the high-level Application facade over the certified Arcature
subsystems. It assembles the HTTP kernel (Axum/Tower), Inertia adapter,
database, cache, storage, mail, jobs, auth, pages, and observability into a
single `Application` builder — while preserving the raw Axum/Tower escape
hatch for expert use.
## What this crate owns
The `Application` builder, the request lifecycle (startup → serve → shutdown),
the pipeline assembly, the `Resources` container (typed subsystem handles),
and the `#[arcature::main]` runtime macro.
## What this crate does not own
It does not reimplement any subsystem. Each subsystem lives in its own
crate (`arcature-db`, `arcature-cache`, etc.) and is optional behind a
feature flag. The facade wires them together; it does not replace them.
## Quick start
```rust,no_run
use arcature::prelude::*;
fn main() -> std::io::Result<()> {
Application::new()
.port(3000)
.routes(routes())
.build()
.run()
}
fn routes() -> Routes<()> {
Routes::new().route("/", get(|| async { "Hello, Arcature!" }))
}
```
With subsystems (feature flags):
```rust,no_run
use arcature::prelude::*;
use arcature::db::DbConfig;
async fn run() -> Result<()> {
Application::new()
.port(3000)
.database(DbConfig::new("postgres://localhost/myapp")?)
.build()
.run_with_lifecycle(|resources| {
// Access the live Db handle via resources.db()
})
.await
}
```
## Feature flags
| `macros` | `#[arcature::main]` |
| `inertia` | Inertia.js server adapter |
| `db` | PostgreSQL |
| `auth` | Session auth, Argon2id, CSRF, OAuth |
| `cache` | Valkey/Redis cache |
| `storage` | Object/file storage |
| `mail` | Email (SMTP) |
| `jobs` | Background jobs |
| `pages` | Special pages + maintenance |
| `api` | OpenAPI 3.1 + problem details |
| `observe` | Tracing/metrics + OpenTelemetry |
## Documentation
- [Architecture](../../docs/ARCHITECTURE.md) — locked stack and innovation areas
- [Security model](../../docs/SECURITY_MODEL.md) — security baseline
- [Performance](../../docs/PERFORMANCE.md) — performance constitution
- [Dogfood app](../../dogfood/linkhub/) — LinkHub reference application
## License
Apache License 2.0 (see workspace `LICENSE`).