[package]
name = "ousia"
version = "1.2.8"
edition = "2024"
description = "Postgres ORM with native double-entry ledger, graph relations, and atomic money operations for Rust"
license = "MIT"
readme = "README.md"
repository = "https://github.com/theousia/ousia"
documentation = "https://docs.rs/ousia"
homepage = "https://github.com/theousia/ousia"
keywords = ["orm", "postgres", "ledger", "graph", "finance"]
categories = ["database", "finance", "data-structures"]
exclude = ["tests/", ".github/", "Cargo.lock"]
rust-version = "1.85"

[features]
default = ["derive", "postgres", "ledger"]
derive = ["dep:ousia_derive"]

full = ["derive", "cockroach", "postgres", "sqlite", "ledger"]

cockroach = ["dep:sqlx"]
postgres = ["dep:sqlx"]
sqlite = ["dep:sqlx"]

ledger = ["dep:ledger"]

[dependencies]
chrono = { version = "0.4.42", features = ["serde"] }
once_cell = "1.21.3"
serde = { version = "1", features = ["derive"] }
async-trait = "0.1.89"
serde_json = "1.0.145"
sqlx = { version = "0.8", features = [
    "postgres",
    "sqlite",
    "runtime-tokio",
    "derive",
    "tls-native-tls",
    "json",
    "uuid",
    "chrono",
], optional = true }
tokio = { version = "1", features = ["macros", "time"] }
redis = { version = "1", features = ["json", "tokio-comp"] }
ousia_derive = { version = "1.2", optional = true }
ledger = { version = "1.2", optional = true, package = "ousia-ledger" }
uuid = { version = "1", features = ["v7", "serde"] }
blake3 = "1.8.3"
metrics = "0.24.3"

[dev-dependencies]
testcontainers = "0.25"
testcontainers-modules = { version = "0.13", features = ["postgres"] }
bincode = "1.3"
