[workspace]
members = ["architecturekit-macros"]
[workspace.package]
version = "0.24.1"
edition = "2024"
rust-version = "1.88"
repository = "https://github.com/thenativeweb/architecturekit-rust"
license = "MIT"
[package]
name = "architecturekit"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
description = "Building blocks for DDD-based applications with CQRS and event sourcing, on top of the EventSourcingDB by the native web."
repository.workspace = true
license.workspace = true
keywords = [
"cqrs",
"ddd",
"event-sourcing",
"esdb",
"eventsourcingdb",
]
categories = ["database"]
[package.metadata.docs.rs]
features = ["axum", "testcontainers"]
[features]
axum = ["http", "dep:axum", "dep:http-body-util"]
default = ["derive"]
derive = ["dep:architecturekit-macros"]
http = ["dep:bytes", "dep:http", "dep:serde_ignored", "dep:serde_path_to_error"]
testcontainers = ["testing", "eventsourcingdb/testcontainer"]
testing = []
[dependencies]
architecturekit-macros = { path = "architecturekit-macros", version = "=0.24.1", optional = true }
axum = { version = "0.8.9", default-features = false, optional = true }
bytes = { version = "1.12.1", optional = true }
chrono = { version = "0.4.45", default-features = false, features = ["now", "serde"] }
ed25519-dalek = "3.0.0"
eventsourcingdb = "4.0.5"
futures-util = "0.3.31"
http = { version = "1.5.0", optional = true }
http-body-util = { version = "0.1.5", optional = true }
log = "0.4.27"
serde = "1.0.229"
serde_json = "1.0.154"
serde_ignored = { version = "0.1.14", optional = true }
serde_path_to_error = { version = "0.1.20", optional = true }
tokio = { version = "1.52.3", features = ["macros", "rt", "sync", "time"] }
tokio-util = { version = "0.7.20", default-features = false }
[dev-dependencies]
eventsourcingdb = { version = "4.0.5", features = ["testcontainer"] }
serde = { version = "1.0.229", features = ["derive"] }
tokio = { version = "1.52.3", features = ["io-util", "macros", "net", "rt-multi-thread", "time"] }
tower = { version = "0.5.3", features = ["util"] }
tower-http = { version = "0.7.1", features = ["catch-panic"] }
url = "2.5.4"