[package]
name = "mempill-postgres"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
authors.workspace = true
rust-version.workspace = true
readme = "README.md"
description = "PostgreSQL persistence adapter for mempill — shared-DB topology, r2d2 pool, per-agent advisory locking, OCC, refinery migrations (NoTls)"
keywords = ["ai", "agent", "memory", "postgres", "temporal"]
categories = ["database", "data-structures"]
[features]
postgres-integration = []
[package.metadata.docs.rs]
all-features = true
[dependencies]
mempill-core = { path = "../mempill-core", version = "0.2.0" }
mempill-types = { path = "../mempill-types", version = "0.2.0" }
postgres = { version = "0.19", features = ["with-serde_json-1", "with-chrono-0_4"] }
r2d2 = "0.8"
r2d2_postgres = "0.18"
refinery = { version = "0.9", features = ["postgres"] }
serde_json = { workspace = true }
uuid = { workspace = true }
chrono = { workspace = true }
thiserror = { workspace = true }
[dev-dependencies]
testcontainers-modules = { version = "0.15", features = ["postgres", "blocking", "watchdog"] }
mempill-core = { path = "../mempill-core", version = "0.2.0", features = ["test-support"] }
tokio = { workspace = true, features = ["rt", "macros"] }
[[test]]
name = "postgres_concurrent"
path = "tests/postgres_concurrent.rs"
required-features = ["postgres-integration"]
[[test]]
name = "postgres_conformance"
path = "tests/postgres_conformance.rs"
required-features = ["postgres-integration"]
[[test]]
name = "postgres_oracle_conformance"
path = "tests/postgres_oracle_conformance.rs"
required-features = ["postgres-integration"]
[[test]]
name = "postgres_oracle_e2e"
path = "tests/postgres_oracle_e2e.rs"
required-features = ["postgres-integration"]
[[test]]
name = "postgres_pending_store"
path = "tests/postgres_pending_store.rs"
required-features = ["postgres-integration"]
[[test]]
name = "postgres_succession"
path = "tests/postgres_succession.rs"
required-features = ["postgres-integration"]
[[test]]
name = "postgres_ttl_orphan"
path = "tests/postgres_ttl_orphan.rs"
required-features = ["postgres-integration"]