[package]
edition = "2024"
name = "cqrs-rust-lib"
version = "0.8.0"
authors = ["Michael DOHR"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "An opinionated implementation of CQRS/Event Sourcing with pluggable storage backends (InMemory, PostgreSQL, MongoDB, SurrealDB)"
readme = "README.md"
keywords = [
"cqrs",
"event-sourcing",
"aggregate",
"ddd",
]
categories = ["database"]
license = "MIT"
repository = "https://github.com/dohrm/cqrs-rust-lib"
[package.metadata.cargo-machete]
ignored = [
"getrandom",
"rmcp",
"schemars",
]
[features]
all = [
"rest",
"mongodb",
"postgres",
"surrealdb",
]
mcp = [
"dep:rmcp",
"dep:schemars",
]
mongodb = [
"dep:mongodb",
"dep:bson",
"dep:rest-sql-drivers",
"rest-sql-drivers/mongodb",
]
postgres = [
"dep:tokio-postgres",
"dep:rest-sql-drivers",
"rest-sql-drivers/tokio-postgres",
]
rest = [
"utoipa",
"dep:axum",
"dep:utoipa-axum",
"dep:serde_urlencoded",
"dep:percent-encoding",
]
surrealdb = [
"dep:surrealdb",
"dep:surrealdb-types",
"dep:rest-sql-drivers",
"rest-sql-drivers/surrealdb",
]
utoipa = ["dep:utoipa"]
wasm = [
"dep:getrandom",
"getrandom/wasm_js",
"uuid/js",
"chrono/wasmbind",
]
[lib]
name = "cqrs_rust_lib"
path = "src/lib.rs"
[dependencies.async-trait]
version = "^0.1"
[dependencies.axum]
version = "^0.8"
optional = true
[dependencies.bson]
version = "3"
optional = true
[dependencies.chrono]
version = "^0.4"
features = ["serde"]
[dependencies.futures]
version = "^0.3"
[dependencies.getrandom]
version = "^0.3"
optional = true
[dependencies.http]
version = "^1.3"
[dependencies.mongodb]
version = "^3.6"
features = [
"rustls-tls",
"bson-3",
"dns-resolver",
"compat-3-3-0",
]
optional = true
default-features = false
[dependencies.percent-encoding]
version = "2"
optional = true
[dependencies.rand]
version = "^0.9"
[dependencies.rest-sql]
version = "0.2"
[dependencies.rest-sql-drivers]
version = "0.2"
optional = true
[dependencies.rmcp]
version = "^0.6"
features = ["server"]
optional = true
[dependencies.schemars]
version = "^1"
features = ["derive"]
optional = true
[dependencies.serde]
version = "^1"
features = ["serde_derive"]
[dependencies.serde_json]
version = "^1"
[dependencies.serde_urlencoded]
version = "0.7"
optional = true
[dependencies.surrealdb]
version = "^3"
optional = true
[dependencies.surrealdb-types]
version = "^3"
optional = true
[dependencies.thiserror]
version = "^2.0"
[dependencies.tokio-postgres]
version = "^0.7"
features = [
"with-serde_json-1",
"with-chrono-0_4",
]
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.utoipa]
version = "^5.4"
optional = true
[dependencies.utoipa-axum]
version = "^0.2"
optional = true
[dependencies.uuid]
version = "^1"
features = ["v4"]
[dev-dependencies.surrealdb]
version = "^3"
features = ["kv-mem"]
[dev-dependencies.tokio]
version = "^1"
features = [
"rt-multi-thread",
"macros",
]