[package]
edition = "2024"
rust-version = "1.85"
name = "dbnexus"
version = "0.1.3"
authors = ["Kirky.X"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "An enterprise-grade database abstraction layer for Rust with built-in permission control and connection pooling"
documentation = "https://docs.rs/dbnexus"
readme = "README.md"
keywords = [
"database",
"orm",
"sea-orm",
"sql",
]
categories = [
"database",
"asynchronous",
]
license = "MIT"
repository = "https://github.com/Kirky-X/dbnexus"
resolver = "2"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
all-optional = [
"metrics",
"migration",
"auto-migrate",
"tracing",
"sharding",
"global-index",
"cache",
"audit",
"permission-engine",
"confers",
]
audit = [
"chrono",
"uuid",
]
auto-migrate = ["migration"]
cache = [
"uuid",
"indexmap",
]
cli-tests = []
confers = ["dep:confers"]
config-env = ["dep:regex"]
config-toml = [
"dep:toml",
"dep:regex",
]
config-yaml = [
"dep:serde_yaml",
"dep:regex",
]
default = [
"sqlite",
"runtime-tokio-rustls",
"permission",
"permission-engine",
"sql-parser",
"macros",
"config-env",
]
dev = []
global-index = [
"sha2",
"chrono",
"sea-orm/with-json",
]
health-check = []
macros = ["dbnexus-macros"]
metrics = ["prometheus"]
microservice = [
"runtime-tokio-rustls",
"postgres",
"permission",
"sql-parser",
"config-env",
"pool-health-check",
"config-yaml",
"dep:lru",
"permission-engine",
]
migration = ["dep:regex"]
minimal = [
"runtime-tokio-rustls",
"sqlite",
"config-env",
"dep:lru",
"sql-parser",
]
mysql = [
"sea-orm/sqlx-mysql",
"sea-orm/macros",
]
permission = [
"dep:lru",
"dep:dashmap",
"dep:serde_yaml",
]
permission-engine = []
pool-health-check = []
pool-warmup = ["futures"]
postgres = [
"sea-orm/sqlx-postgres",
"sea-orm/macros",
]
runtime-async-std = ["sea-orm/runtime-async-std"]
runtime-tokio-native-tls = [
"sea-orm/runtime-tokio-native-tls",
"tokio/rt-multi-thread",
]
runtime-tokio-rustls = [
"sea-orm/runtime-tokio-rustls",
"tokio/rt-multi-thread",
]
sharding = [
"twox-hash",
"chrono",
"futures",
"dep:dashmap",
]
sql-parser = [
"dep:sqlparser",
"dep:regex",
"dep:once_cell",
]
sqlite = [
"sea-orm/sqlx-sqlite",
"sea-orm/macros",
]
tracing = [
"tracing-subscriber",
"tracing-opentelemetry",
"opentelemetry-otlp",
"opentelemetry-jaeger",
"opentelemetry",
"opentelemetry_sdk",
"chrono",
"http",
"tower",
"dep:once_cell",
]
ultra-minimal = [
"runtime-tokio-rustls",
"sqlite",
"config-env",
"dep:lru",
]
with-json = ["sea-orm/with-json"]
[lib]
name = "dbnexus"
path = "src/lib.rs"
[[test]]
name = "audit_integration"
path = "tests/audit/integration/audit_integration.rs"
required-features = [
"runtime-tokio-rustls",
"sqlite",
"audit",
]
[[test]]
name = "core_config_integration"
path = "tests/core/integration/config_integration.rs"
required-features = [
"runtime-tokio-rustls",
"sqlite",
"config-yaml",
"permission",
]
[[test]]
name = "core_entity_integration"
path = "tests/core/integration/entity_integration.rs"
required-features = [
"runtime-tokio-rustls",
"sqlite",
"macros",
]
[[test]]
name = "core_permission_integration"
path = "tests/core/integration/permission_integration.rs"
required-features = [
"runtime-tokio-rustls",
"sqlite",
"permission",
]
[[test]]
name = "core_session_transaction"
path = "tests/core/integration/session_transaction.rs"
required-features = [
"runtime-tokio-rustls",
"sqlite",
"permission",
]
[[test]]
name = "core_sql_parser_integration"
path = "tests/core/integration/sql_parser_integration.rs"
required-features = [
"runtime-tokio-rustls",
"sqlite",
"sql-parser",
]
[[test]]
name = "cross_cutting_benchmarks"
path = "tests/cross_cutting/benchmarks/benchmarks.rs"
required-features = [
"runtime-tokio-rustls",
"sqlite",
"permission",
]
[[test]]
name = "cross_cutting_cli"
path = "tests/cross_cutting/cli/cli_integration.rs"
required-features = [
"runtime-tokio-rustls",
"sqlite",
"cli-tests",
]
[[test]]
name = "cross_cutting_concurrency"
path = "tests/cross_cutting/integration/concurrency.rs"
required-features = [
"runtime-tokio-rustls",
"sqlite",
"permission",
]
[[test]]
name = "cross_cutting_multi_db"
path = "tests/cross_cutting/integration/multi_db.rs"
required-features = [
"runtime-tokio-rustls",
"sqlite",
"migration",
]
[[test]]
name = "global_index_integration"
path = "tests/global_index/integration/global_index_integration.rs"
required-features = [
"runtime-tokio-rustls",
"global-index",
"sqlite",
]
[[test]]
name = "health_integration"
path = "tests/health/integration/health_integration.rs"
required-features = [
"runtime-tokio-rustls",
"sqlite",
"health-check",
]
[[test]]
name = "metadata_unit"
path = "tests/metadata_unit.rs"
[[test]]
name = "metrics_integration"
path = "tests/metrics/integration/metrics_integration.rs"
required-features = [
"runtime-tokio-rustls",
"sqlite",
"metrics",
]
[[test]]
name = "migration_auto_migrate"
path = "tests/migration/integration/auto_migrate.rs"
required-features = [
"runtime-tokio-rustls",
"sqlite",
"auto-migrate",
]
[[test]]
name = "migration_integration"
path = "tests/migration/integration/integration.rs"
required-features = [
"runtime-tokio-rustls",
"sqlite",
"migration",
]
[[test]]
name = "mod"
path = "tests/mod.rs"
[[test]]
name = "permission_engine_integration"
path = "tests/permission/integration/permission_engine_integration.rs"
required-features = [
"runtime-tokio-rustls",
"sqlite",
"permission-engine",
]
[[test]]
name = "sharding_integration"
path = "tests/sharding/integration/sharding_integration.rs"
required-features = [
"runtime-tokio-rustls",
"sqlite",
"sharding",
]
[[test]]
name = "tracing_integration"
path = "tests/tracing/integration/tracing_integration.rs"
required-features = [
"runtime-tokio-rustls",
"sqlite",
"tracing",
]
[[test]]
name = "tracing_unit"
path = "tests/tracing/unit/mod.rs"
required-features = [
"runtime-tokio-rustls",
"sqlite",
"tracing",
]
[[bench]]
name = "permission_bench"
path = "benches/permission_bench.rs"
harness = false
[dependencies.ahash]
version = "0.8"
[dependencies.anyhow]
version = "1.0"
[dependencies.async-trait]
version = "0.1"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
optional = true
[dependencies.confers]
version = "0.1"
optional = true
default-features = false
[dependencies.dashmap]
version = "5.5"
optional = true
[dependencies.dbnexus-macros]
version = "0.1.0"
optional = true
[dependencies.futures]
version = "0.3"
optional = true
[dependencies.home]
version = "0.5"
[dependencies.http]
version = "1.0"
optional = true
[dependencies.indexmap]
version = "2.0"
optional = true
[dependencies.lru]
version = ">=0.12.5, <0.17"
optional = true
[dependencies.once_cell]
version = "1.20"
optional = true
[dependencies.opentelemetry]
version = "0.24.0"
optional = true
[dependencies.opentelemetry-jaeger]
version = "0.22.0"
optional = true
[dependencies.opentelemetry-otlp]
version = "0.17.0"
optional = true
[dependencies.opentelemetry_sdk]
version = "0.24.0"
optional = true
[dependencies.parking_lot]
version = "0.12"
[dependencies.prometheus]
version = "0.14"
optional = true
[dependencies.rand]
version = "0.8"
[dependencies.regex]
version = "1.0"
optional = true
[dependencies.sea-orm]
version = "2.0.0-rc.27"
default-features = false
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.serde_yaml]
version = "0.9.34-deprecated"
optional = true
[dependencies.sha2]
version = "0.10"
optional = true
[dependencies.sqlparser]
version = "0.47"
optional = true
[dependencies.thiserror]
version = "2.0"
[dependencies.time]
version = "0.3"
features = [
"formatting",
"parsing",
]
[dependencies.tokio]
version = "1.42"
features = [
"rt-multi-thread",
"macros",
"time",
"sync",
]
[dependencies.toml]
version = "0.9.10"
optional = true
[dependencies.tower]
version = "0.5"
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-opentelemetry]
version = "0.27"
optional = true
[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
optional = true
[dependencies.twox-hash]
version = "2.1"
optional = true
[dependencies.url]
version = "2.5"
[dependencies.uuid]
version = "1.0"
features = ["v4"]
optional = true
[dev-dependencies.assert_cmd]
version = "2.0"
[dev-dependencies.chrono]
version = "0.4"
features = ["serde"]
[dev-dependencies.criterion]
version = "0.5"
[dev-dependencies.futures]
version = "0.3"
[dev-dependencies.indexmap]
version = "2.0"
[dev-dependencies.predicates]
version = "3.0"
[dev-dependencies.sha2]
version = "0.10"
[dev-dependencies.tempfile]
version = "3.10"
[dev-dependencies.tokio-test]
version = "0.4"
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[dev-dependencies.twox-hash]
version = "2.1"
[dev-dependencies.uuid]
version = "1.0"
features = ["v4"]
[lints.clippy]
[lints.rust]