adminx 3.1.0

A powerful, framework-neutral admin-panel framework for Rust: one resource definition served over Actix or Axum, backed by PostgreSQL/MySQL/SQLite (SeaORM) or MongoDB, with auto CRUD, a rendered admin UI, JWT auth and RBAC.
Documentation
[package]
name = "adminx"
# The framework-neutral redesign, successor to the monolithic v1.0.0 (Actix +
# MongoDB). This crate is a thin facade: it re-exports the neutral core plus
# whichever framework/storage adapters you enable via features. Versioned in
# lockstep with the rest of the suite via the workspace.
version.workspace = true
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
description = "A powerful, framework-neutral admin-panel framework for Rust: one resource definition served over Actix or Axum, backed by PostgreSQL/MySQL/SQLite (SeaORM) or MongoDB, with auto CRUD, a rendered admin UI, JWT auth and RBAC."
documentation = "https://docs.rs/adminx"
homepage = "https://github.com/srotas-space/adminx"
readme = "README.md"
keywords = ["admin", "panel", "crud", "actix", "axum"]
categories = ["web-programming", "web-programming::http-server", "database"]

[dependencies]
# Internal crates inherit their path + version from [workspace.dependencies] in
# the suite root — one source of truth, so a release bump changes the version in
# exactly one place. `optional` / `features` are layered on per feature here.
adminx-core   = { workspace = true }
adminx-actix  = { workspace = true, optional = true }
adminx-axum   = { workspace = true, optional = true }
adminx-seaorm = { workspace = true, optional = true }
adminx-mongo  = { workspace = true, optional = true }
adminx-rbac   = { workspace = true, optional = true }
adminx-audit  = { workspace = true, optional = true }
adminx-attachments = { workspace = true, optional = true }
adminx-cloud  = { workspace = true, optional = true }
adminx-search = { workspace = true, optional = true }

# CLI-only dependencies (pulled in only by the `cli` feature).
clap    = { version = "4", features = ["derive", "env"], optional = true }
tokio   = { workspace = true, optional = true }
anyhow  = { version = "1", optional = true }
dotenvy = { version = "0.15", optional = true }

[features]
default = []
# Web frameworks (pick one)
actix = ["dep:adminx-actix"]
axum = ["dep:adminx-axum"]
# Storage backends (pick one)
seaorm = ["dep:adminx-seaorm"]
mongo = ["dep:adminx-mongo"]
# Optional DB-backed RBAC (per-role, per-action, per-resource permissions).
rbac = ["dep:adminx-rbac"]
# Optional audit logging (who changed what, with a per-column before/after diff).
audit = ["dep:adminx-audit"]
# Optional file attachments (upload/serve/detach, local-disk backend).
attachments = ["dep:adminx-attachments"]
# Cloud attachment backends (imply `attachments`). Pick your provider(s).
cloud-aws = ["attachments", "dep:adminx-cloud", "adminx-cloud/aws"]
cloud-gcp = ["attachments", "dep:adminx-cloud", "adminx-cloud/gcp"]
cloud-azure = ["attachments", "dep:adminx-cloud", "adminx-cloud/azure"]
# Full-text search (searchez-backed). `search` = in-memory; add `search-meilisearch`
# for the Meilisearch backend.
search = ["dep:adminx-search"]
search-meilisearch = ["search", "adminx-search/meilisearch"]
# The `adminx` command-line tool (admin-user management). Bundles both storage
# backends so one binary works for Postgres/MySQL/SQLite and MongoDB.
cli = ["seaorm", "mongo", "dep:clap", "dep:tokio", "dep:anyhow", "dep:dotenvy"]

# The CLI binary. Built only with `--features cli`; library users never pull it.
[[bin]]
name = "adminx"
path = "src/bin/adminx.rs"
required-features = ["cli"]

[package.metadata.docs.rs]
# Document a representative combination: one framework (the both-framework guard
# forbids actix+axum together, so `all-features` can't be used), both storage
# backends, and rbac. `--cfg docsrs` activates the `doc(cfg(..))` feature badges.
features = ["axum", "seaorm", "mongo", "rbac", "audit", "attachments", "search"]
rustdoc-args = ["--cfg", "docsrs"]