cqrs-rust-lib 0.8.0

An opinionated implementation of CQRS/Event Sourcing with pluggable storage backends (InMemory, PostgreSQL, MongoDB, SurrealDB)
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[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",
]