[package]
edition = "2024"
rust-version = "1.94"
name = "mire"
version = "0.2.4"
authors = ["kjuulh <contact@kasperhermansen.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A small, generic PostgreSQL event-sourcing library: append-only event streams, aggregates with optimistic concurrency, and subscription-based projections (requires tokio + sqlx)"
readme = "README.md"
license = "MIT"
repository = "https://git.kjuulh.io/kjuulh/mire"
resolver = "2"
[features]
default = ["derive"]
derive = ["dep:mire-derive"]
[lib]
name = "mire"
path = "src/lib.rs"
[[example]]
name = "bank_account"
path = "examples/bank_account.rs"
[[example]]
name = "batched_write"
path = "examples/batched_write.rs"
[[example]]
name = "bench"
path = "examples/bench.rs"
[[example]]
name = "commands"
path = "examples/commands.rs"
[[example]]
name = "concurrency"
path = "examples/concurrency.rs"
[[example]]
name = "multi_replica"
path = "examples/multi_replica.rs"
[[example]]
name = "projection"
path = "examples/projection.rs"
[[example]]
name = "snapshot"
path = "examples/snapshot.rs"
[[example]]
name = "transaction_scope"
path = "examples/transaction_scope.rs"
[[test]]
name = "category_backfill"
path = "tests/category_backfill.rs"
[[test]]
name = "event_store"
path = "tests/event_store.rs"
[[test]]
name = "lease_chaos"
path = "tests/lease_chaos.rs"
[[test]]
name = "lease_fence"
path = "tests/lease_fence.rs"
[[test]]
name = "subscription_ordering"
path = "tests/subscription_ordering.rs"
[[test]]
name = "transaction_scope"
path = "tests/transaction_scope.rs"
[[test]]
name = "transactional_handler"
path = "tests/transactional_handler.rs"
[dependencies.anyhow]
version = "1"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.mire-derive]
version = "0.2.4"
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.sqlx]
version = "0.9"
features = [
"runtime-tokio",
"postgres",
"json",
"chrono",
"uuid",
]
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = ["full"]
[dependencies.tokio-util]
version = "0.7"
[dependencies.tracing]
version = "0.1"
features = [
"log",
"attributes",
]
[dependencies.uuid]
version = "1"
features = [
"v4",
"v7",
"std",
"serde",
]
[dev-dependencies.tokio]
version = "1"
features = [
"full",
"full",
]