[package]
name = "eventdbx"
description = "An event-sourced, key-value, write-side database system."
version = "1.14.2"
edition = "2024"
repository = "https://github.com/thachp/eventdbx"
keywords = [
  "immutable",
  "events",
  "event-sourcing",
  "event-store",
  "cqrs"
]
categories = ["database"]
authors = ["Patrick Thach <thachp@gmail.com>"]
license = "MIT"

exclude = [
    "docs/*",
    "examples/*",
    "benchmarks/*",
    ".github/*",
    "scripts/*",
    "Makefile",
    "Dockerfile"
]

[package.metadata.wix]
upgrade-guid = "C3705B3F-CA2E-4B74-AB5A-66924BD9CFD6"
path-guid = "3E98D6DA-6766-4596-BB7F-06EF47DFA5EA"
license = false
eula = false

[lib]
path = "src/lib/mod.rs"

[[bin]]
name = "dbx"
path = "src/main.rs"

[dependencies]
anyhow = "1.0"
axum = { version = "0.8", features = ["macros", "json"] }
chrono = { version = "0.4", features = ["serde"] }
clap = { version = "4.5", features = ["derive"] }
dirs = "5.0"
hex = "0.4"
parking_lot = "0.12"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
regex = "1.10"
rust_decimal = "1.36"
sha2 = "0.10"
thiserror = "1.0"
tokio = { version = "1.45", features = ["rt-multi-thread", "macros", "signal", "process"] }
toml = "0.8"
tower-http = { version = "0.5", features = ["trace"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] }
tracing-appender = "0.2"
uuid = { version = "1.10", features = ["v4", "serde"] }
rocksdb = { version = "0.21", default-features = false, features = ["multi-threaded-cf"] }
csv = "1.3"
reqwest = { version = "0.12", default-features = false, features = ["blocking", "json", "rustls-tls"] }
flate2 = "1.0"
tar = "0.4"
tempfile = "3.10"
ed25519-dalek = { version = "2", features = ["rand_core"] }
rand_core = { version = "0.6", features = ["getrandom"] }
base64 = "0.21"
tonic = { version = "0.11", features = ["tls", "tls-roots", "transport"] }
prost = "0.12"
tracing-futures = "0.2"
tokio-stream = { version = "0.1", features = ["sync", "net"] }
async-graphql = { version = "7", features = ["chrono", "uuid"] }
async-graphql-axum = "7"
aes-gcm = "0.10"
lru = "0.12"
zip = { version = "0.6", default-features = false, features = ["deflate"] }
argon2 = { version = "0.5", features = ["password-hash"] }
capnp = "0.19"
capnp-futures = "0.19"
tokio-util = { version = "0.7", features = ["compat"] }
futures = "0.3"
semver = "1.0"
validator = { version = "0.16", features = ["card"] }

[dev-dependencies]
fake = "3"
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] }
portpicker = "0.1"
rand = "0.8"

[build-dependencies]
tonic-build = "0.11"
protoc-bin-vendored = "3"
capnpc = "0.19"

[target.'cfg(unix)'.dependencies]
libc = "0.2"

[target.'cfg(windows)'.dependencies]
windows-sys = { version = "0.52", features = ["Win32_Foundation", "Win32_System_Threading"] }

# The profile that 'dist' will build with
[profile.dist]
inherits = "release"
lto = "thin"
