{
"name": "axa",
"version": "0.12.1",
"description": "Accessories library for Axum websites, databases, microservices, and more.",
"repository": "https://github.com/publicprojects-io/axa/",
"license": "MIT OR Apache-2.0 OR BSD-3-Clause OR GPL-2.0-only OR GPL-3.0-only",
"language": "Rust",
"edition": "2024",
"rust_version": "1.97",
"documentation": {
"readme": "README.md",
"agents": "AGENTS.md",
"specification": "spec/index.md",
"changelog": "CHANGELOG.md",
"guides": [
"help/from-loco-into-axa/index.md",
"help/from-loco-seaorm-into-axa-seaorm/index.md",
"help/idempotency-keys/index.md",
"help/transactional-outbox/index.md",
"help/background-jobs/index.md",
"help/upgrading-to-0.3/index.md"
],
"skills": {
"user": "skill/axa-skill/SKILL.md",
"maintainer": "skill/axa-maintainer-skill/SKILL.md"
}
},
"features": [
{
"name": "postgres-seaorm",
"crate": "axa-postgres-seaorm"
},
{
"name": "queue",
"crate": null
},
{
"name": "postgres-diesel",
"crate": "axa-postgres-diesel"
},
{
"name": "postgres-toasty",
"crate": "axa-postgres-toasty"
},
{
"name": "keycloak",
"crate": "axa-keycloak-auth"
},
{
"name": "openapi",
"crate": "axa-openapi-docs"
},
{
"name": "opentelemetry",
"crate": "axa-opentelemetry"
},
{
"name": "outbox",
"crate": "axa-transactional-outbox"
},
{
"name": "outbox-encryption",
"crate": "axa-transactional-outbox"
},
{
"name": "cursor-pagination",
"crate": "axa-cursor-pagination"
},
{
"name": "paseto",
"crate": "axa-paseto-auth"
},
{
"name": "problem",
"crate": "axa-problem"
},
{
"name": "prometheus",
"crate": "axa-prometheus-metrics"
},
{
"name": "redis",
"crate": "axa-redis-cache"
},
{
"name": "session",
"crate": "axa-web-session"
},
{
"name": "postgres-sqlx",
"crate": "axa-postgres-sqlx"
},
{
"name": "tera",
"crate": "axa-tera-templates"
},
{
"name": "tracing",
"crate": "axa-tracing"
},
{
"name": "idempotency",
"crate": "axa-idempotency-key"
},
{
"name": "ratelimit",
"crate": "axa-request-rate-limit"
},
{
"name": "versioning",
"crate": "axa-accepts-version-negotiation"
},
{
"name": "mysql-sqlx",
"crate": "axa-mysql-sqlx"
},
{
"name": "mysql-seaorm",
"crate": "axa-mysql-seaorm"
},
{
"name": "mysql-diesel",
"crate": "axa-mysql-diesel"
},
{
"name": "mysql-toasty",
"crate": "axa-mysql-toasty"
},
{
"name": "sqlite-sqlx",
"crate": "axa-sqlite-sqlx"
},
{
"name": "sqlite-seaorm",
"crate": "axa-sqlite-seaorm"
},
{
"name": "sqlite-diesel",
"crate": "axa-sqlite-diesel"
},
{
"name": "maud",
"crate": "axa-maud-templates"
}
],
"modules": [
{
"name": "boot",
"purpose": "Test boot helpers, including `TestApp`"
},
{
"name": "cli",
"purpose": "The shared command line"
},
{
"name": "conditional",
"purpose": "`ETag`, `304`, and `If-Match`, as RFC 9110 has them"
},
{
"name": "config",
"purpose": "Configuration from the process environment"
},
{
"name": "context",
"purpose": "`AppContext`, plain Axum state"
},
{
"name": "db",
"purpose": "Database helpers for the context"
},
{
"name": "error",
"purpose": "The error type and its HTTP mapping"
},
{
"name": "extract",
"purpose": "Extractors that reject with a problem saying what was wrong"
},
{
"name": "format",
"purpose": "Response helpers"
},
{
"name": "health",
"purpose": "Health routes"
},
{
"name": "logger",
"purpose": "Logging setup, `init` and `init_with`"
},
{
"name": "middleware",
"purpose": "The standard HTTP middleware stack"
},
{
"name": "prelude",
"purpose": "Common imports"
},
{
"name": "queue",
"purpose": "The Postgres job queue (feature `queue`)"
},
{
"name": "routes",
"purpose": "Route tables that become an ordinary `Router`"
},
{
"name": "server",
"purpose": "Serving, connection limits, and graceful shutdown"
},
{
"name": "store",
"purpose": "Shared in-process store"
},
{
"name": "task",
"purpose": "Command-line tasks"
},
{
"name": "worker",
"purpose": "Background jobs"
}
],
"crates": [
{
"name": "axa-postgres-diesel",
"version": "0.2.1",
"description": "Diesel on PostgreSQL: pooling, migrations, and test resets for Axum services, in pure Rust.",
"feature": "postgres-diesel",
"readme": "crates/axa-postgres-diesel/README.md"
},
{
"name": "axa-postgres-toasty",
"version": "0.1.0",
"description": "Toasty on PostgreSQL: connections, migrations, and test resets for Axum services.",
"feature": "postgres-toasty",
"readme": "crates/axa-postgres-toasty/README.md"
},
{
"name": "axa-environment",
"version": "0.2.0",
"description": "Which environment a service runs in, read one way, with no dependencies.",
"feature": null,
"readme": "crates/axa-environment/README.md"
},
{
"name": "axa-keycloak-auth",
"version": "0.4.0",
"description": "Keycloak bearer authentication and ABAC enforcement for Axum services.",
"feature": "keycloak",
"readme": "crates/axa-keycloak-auth/README.md"
},
{
"name": "axa-openapi-docs",
"version": "0.1.0",
"description": "Serve OpenAPI documents and a pinned Swagger UI from Axum services.",
"feature": "openapi",
"readme": "crates/axa-openapi-docs/README.md"
},
{
"name": "axa-opentelemetry",
"version": "0.1.1",
"description": "OTLP export of traces and request metrics for Axum services.",
"feature": "opentelemetry",
"readme": "crates/axa-opentelemetry/README.md"
},
{
"name": "axa-transactional-outbox",
"version": "0.3.0",
"description": "A transactional outbox and relay on Postgres for Axum services, that keeps a record of what it delivered and refused.",
"feature": "outbox",
"readme": "crates/axa-transactional-outbox/README.md"
},
{
"name": "axa-postgres-job-queue",
"version": "0.2.0",
"description": "A Postgres job queue, worker pool, and recurring schedules for Axum services.",
"feature": "queue",
"readme": "crates/axa-postgres-job-queue/README.md"
},
{
"name": "axa-mysql-job-queue",
"version": "0.1.0",
"description": "A MySQL job queue, worker pool, and recurring schedules for Axum services.",
"feature": null,
"readme": "crates/axa-mysql-job-queue/README.md"
},
{
"name": "axa-sqlite-job-queue",
"version": "0.1.0",
"description": "A SQLite job queue, worker pool, and recurring schedules for Axum services.",
"feature": null,
"readme": "crates/axa-sqlite-job-queue/README.md"
},
{
"name": "axa-cursor-pagination",
"version": "0.1.1",
"description": "Signed cursor pagination with Link rel=next and no total, and LIKE escaping, for Axum services.",
"feature": "cursor-pagination",
"readme": "crates/axa-cursor-pagination/README.md"
},
{
"name": "axa-paseto-auth",
"version": "0.6.0",
"description": "PASETO bearer authentication and ABAC enforcement for Axum services.",
"feature": "paseto",
"readme": "crates/axa-paseto-auth/README.md"
},
{
"name": "axa-problem",
"version": "0.2.0",
"description": "RFC 9457 problem details responses for Axum services.",
"feature": null,
"readme": "crates/axa-problem/README.md"
},
{
"name": "axa-prometheus-metrics",
"version": "0.1.1",
"description": "Prometheus text exposition for Axum services.",
"feature": "prometheus",
"readme": "crates/axa-prometheus-metrics/README.md"
},
{
"name": "axa-redis-cache",
"version": "0.1.1",
"description": "A Redis cache with mandatory expiry for Axum services.",
"feature": "redis",
"readme": "crates/axa-redis-cache/README.md"
},
{
"name": "axa-postgres-seaorm",
"version": "0.3.0",
"description": "SeaORM on PostgreSQL: connections, migrations, schema helpers, and test resets for Axum services, with an easy path from Loco.",
"feature": "postgres-seaorm",
"readme": "crates/axa-postgres-seaorm/README.md"
},
{
"name": "axa-web-session",
"version": "0.1.0",
"description": "Web sessions for Axum services over axum_session, with safe defaults.",
"feature": "session",
"readme": "crates/axa-web-session/README.md"
},
{
"name": "axa-postgres-sqlx",
"version": "0.1.3",
"description": "PostgreSQL pooling, migrations, and test resets over sqlx for Axum services.",
"feature": "postgres-sqlx",
"readme": "crates/axa-postgres-sqlx/README.md"
},
{
"name": "axa-test",
"version": "0.3.0",
"description": "Request-level test helpers for Axa services, built on axum-test.",
"feature": null,
"readme": "crates/axa-test/README.md"
},
{
"name": "axa-tera-templates",
"version": "0.2.1",
"description": "Tera templates with safe escaping and generic errors for Axum services.",
"feature": "tera",
"readme": "crates/axa-tera-templates/README.md"
},
{
"name": "axa-tracing",
"version": "0.1.0",
"description": "Redaction, request tracking, and asynchronous diagnostics over tracing for Axum services.",
"feature": "tracing",
"readme": "crates/axa-tracing/README.md"
},
{
"name": "axa-idempotency-key",
"version": "0.2.2",
"description": "Idempotency-Key handling over Postgres for Axum services.",
"feature": "idempotency",
"readme": "crates/axa-idempotency-key/README.md"
},
{
"name": "axa-request-rate-limit",
"version": "0.3.0",
"description": "In-process request limits, per client or per key, and failed-login lockout for Axum services.",
"feature": "ratelimit",
"readme": "crates/axa-request-rate-limit/README.md"
},
{
"name": "axa-accepts-version-negotiation",
"version": "0.2.1",
"description": "Header-based API version negotiation for Axum services.",
"feature": "versioning",
"readme": "crates/axa-accepts-version-negotiation/README.md"
},
{
"name": "axa-mysql-sqlx",
"version": "0.1.0",
"description": "MySQL pooling, migrations, and test resets over sqlx for Axum services.",
"feature": "mysql-sqlx",
"readme": "crates/axa-mysql-sqlx/README.md"
},
{
"name": "axa-mysql-seaorm",
"version": "0.1.0",
"description": "SeaORM connections, migrations, schema helpers, and test resets for Axum services on MySQL.",
"feature": "mysql-seaorm",
"readme": "crates/axa-mysql-seaorm/README.md"
},
{
"name": "axa-mysql-diesel",
"version": "0.1.0",
"description": "Diesel pooling, migrations, and test resets for Axum services on MySQL, in pure Rust.",
"feature": "mysql-diesel",
"readme": "crates/axa-mysql-diesel/README.md"
},
{
"name": "axa-mysql-toasty",
"version": "0.1.0",
"description": "Toasty connections, migrations, and test resets for Axum services, on MySQL.",
"feature": "mysql-toasty",
"readme": "crates/axa-mysql-toasty/README.md"
},
{
"name": "axa-sqlite-sqlx",
"version": "0.1.0",
"description": "SQLite pooling, migrations, and test resets over sqlx for Axum services.",
"feature": "sqlite-sqlx",
"readme": "crates/axa-sqlite-sqlx/README.md"
},
{
"name": "axa-sqlite-seaorm",
"version": "0.1.0",
"description": "SeaORM connections, migrations, schema helpers, and test resets on SQLite for Axum services, with an easy path from Loco.",
"feature": "sqlite-seaorm",
"readme": "crates/axa-sqlite-seaorm/README.md"
},
{
"name": "axa-sqlite-diesel",
"version": "0.1.0",
"description": "Diesel pooling, migrations, and test resets for Axum services on SQLite.",
"feature": "sqlite-diesel",
"readme": "crates/axa-sqlite-diesel/README.md"
},
{
"name": "axa-maud-templates",
"version": "0.1.0",
"description": "Maud compile-time HTML templates with safe escaping and generic errors for Axum services.",
"feature": "maud",
"readme": "crates/axa-maud-templates/README.md"
}
]
}