[package]
edition = "2024"
name = "dbkit-rs"
version = "0.3.3"
build = false
exclude = [".claude/"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Multi-backend database infrastructure: sqlx writes (Postgres/MySQL/SQLite) with optional DuckDB/DataFusion analytical reads, pooling, caching, and migrations"
homepage = "https://github.com/agene0001/dbkit-rs"
documentation = "https://docs.rs/dbkit-rs"
readme = "README.md"
keywords = [
"database",
"sqlx",
"duckdb",
"datafusion",
"arrow",
]
categories = ["database"]
license = "MIT"
repository = "https://github.com/agene0001/dbkit-rs"
[features]
_arrow = ["dep:arrow"]
_read-typed = [
"dep:serde",
"dep:serde_arrow",
"serde_arrow/arrow-58",
"_arrow",
]
clickhouse = [
"dep:reqwest",
"dep:async-trait",
"_read-typed",
"arrow/ipc",
]
datafusion = [
"dep:datafusion",
"dep:async-trait",
"_read-typed",
]
default = ["postgres"]
duckdb = [
"dep:duckdb",
"dep:async-trait",
"_read-typed",
]
mysql = ["sqlx/mysql"]
postgres = ["sqlx/postgres"]
postgres-native = [
"postgres",
"sqlx/uuid",
"sqlx/chrono",
"sqlx/json",
]
sqlite = ["sqlx/sqlite"]
[lib]
name = "dbkit"
path = "src/lib.rs"
[[test]]
name = "migrations"
path = "tests/migrations.rs"
[[test]]
name = "sync_roundtrip"
path = "tests/sync_roundtrip.rs"
[dependencies.arrow]
version = "58"
optional = true
[dependencies.async-trait]
version = "0.1"
optional = true
[dependencies.dashmap]
version = "6.2.1"
[dependencies.datafusion]
version = "54.0.0"
optional = true
[dependencies.duckdb]
version = "1.10504"
features = [
"bundled",
"vtab-arrow",
]
optional = true
[dependencies.percent-encoding]
version = "2.3"
[dependencies.reqwest]
version = "0.13.4"
features = [
"rustls",
"query",
]
optional = true
default-features = false
[dependencies.serde]
version = "1"
optional = true
[dependencies.serde_arrow]
version = "0.14"
optional = true
[dependencies.sqlx]
version = "0.9"
features = [
"runtime-tokio",
"any",
"migrate",
]
default-features = false
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1.52.3"
features = ["rt"]
[dependencies.tracing]
version = "0.1"
[dependencies.unicode-normalization]
version = "0.1"
[dev-dependencies.serde]
version = "1"
features = ["derive"]
[dev-dependencies.tokio]
version = "1.52.3"
features = [
"macros",
"rt",
]