storage-kit 0.0.1

Portable database and transactional state-store Kit.
Documentation
[package]
name = "storage-kit"
version = "0.0.1"
edition = "2024"
rust-version = "1.99"
license = "Apache-2.0"
description = "Portable database and transactional state-store Kit."
readme = "README.md"
keywords = ["vector-database", "sdk", "lancedb", "surrealdb"]
categories = ["database", "api-bindings"]
repository = "https://github.com/jecsand838/ai-kit"
documentation = "https://docs.rs/storage-kit"
include = ["src/**", "examples/**", "tests/**", "Cargo.toml", "README.md", "LICENSE"]

[features]
default = []
redb = ["dep:redb"]
postgres = ["dep:tokio-postgres"]
surrealdb = ["dep:surrealdb", "dep:surrealdb-core"]
sqlite = ["dep:turso"]

[dependencies]
bitflags = { version = "2.11", features = ["serde"] }
chrono = { version = "0.4", features = ["clock", "serde"] }
futures = "0.3"
secrecy = { workspace = true, features = ["serde"] }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true, features = ["float_roundtrip"] }
thiserror = { workspace = true }
tokio = { workspace = true, features = ["fs", "macros", "rt-multi-thread", "sync", "time"] }
url = { workspace = true }
uuid = { version = "1", features = ["serde", "v4", "v5"] }

# LanceDB 0.40 job code requires remote error types; keep storage adapters local.
lancedb = { version = "=0.40.0", default-features = false, features = ["remote"] }
lance = { version = "=13.0.0", default-features = false }
lance-io = { version = "=13.0.0", default-features = false }
lance-table = { version = "=13.0.0", default-features = false }
object_store = { version = "=0.14.2", default-features = false }
arrow-array = { version = "58.4.1" }
arrow-schema = { version = "58.4.1" }

surrealdb = { version = "=3.3.0", default-features = false, features = ["protocol-ws", "protocol-http", "rustls", "kv-mem", "kv-rocksdb", "kv-surrealkv"], optional = true }
surrealdb-core = { version = "=3.3.0", default-features = false, optional = true }
tokio-postgres = { version = "0.7.18", default-features = false, features = ["runtime"], optional = true }
turso = { version = "=0.8.2", default-features = false, optional = true }
redb = { version = "=4.3.0", default-features = false, optional = true }

[target.'cfg(unix)'.dependencies]
rustix = { version = "=1.1.4", default-features = false, features = ["fs"] }

[dev-dependencies]
reqwest = { workspace = true, default-features = false, features = ["json", "rustls"] }
tempfile = { workspace = true }
tokio = { workspace = true, features = ["fs", "macros", "net", "rt-multi-thread", "sync", "time"] }
uuid = { version = "1", features = ["v4"] }

[package.metadata.docs.rs]
default-target = "x86_64-unknown-linux-gnu"
targets = ["x86_64-unknown-linux-gnu"]