dbnexus 0.1.2

An enterprise-grade database abstraction layer for Rust with built-in permission control and connection pooling
[[bench]]
harness = false
name = "permission_bench"
path = "benches/permission_bench.rs"

[dependencies.ahash]
version = "0.8"

[dependencies.anyhow]
version = "1.0"

[dependencies.async-trait]
version = "0.1"

[dependencies.chrono]
features = ["serde"]
optional = true
version = "0.4"

[dependencies.confers]
default-features = false
optional = true
version = "0.1"

[dependencies.dashmap]
optional = true
version = "5.5"

[dependencies.dbnexus-macros]
optional = true
version = "0.1.0"

[dependencies.futures]
optional = true
version = "0.3"

[dependencies.home]
version = "0.5"

[dependencies.http]
optional = true
version = "1.0"

[dependencies.indexmap]
optional = true
version = "2.0"

[dependencies.lru]
optional = true
version = ">=0.12.5, <0.17"

[dependencies.once_cell]
optional = true
version = "1.20"

[dependencies.opentelemetry]
optional = true
version = "0.24.0"

[dependencies.opentelemetry-jaeger]
optional = true
version = "0.22.0"

[dependencies.opentelemetry-otlp]
optional = true
version = "0.17.0"

[dependencies.opentelemetry_sdk]
optional = true
version = "0.24.0"

[dependencies.parking_lot]
version = "0.12"

[dependencies.prometheus]
optional = true
version = "0.14"

[dependencies.rand]
version = "0.8"

[dependencies.regex]
optional = true
version = "1.0"

[dependencies.sea-orm]
default-features = false
version = "2.0.0-rc.27"

[dependencies.serde]
features = ["derive"]
version = "1.0"

[dependencies.serde_json]
version = "1.0"

[dependencies.serde_yaml]
optional = true
version = "0.9.34-deprecated"

[dependencies.sha2]
optional = true
version = "0.10"

[dependencies.sqlparser]
optional = true
version = "0.47"

[dependencies.thiserror]
version = "2.0"

[dependencies.time]
features = ["formatting", "parsing"]
version = "0.3"

[dependencies.tokio]
features = ["rt-multi-thread", "macros", "time", "sync"]
version = "1.42"

[dependencies.toml]
optional = true
version = "0.9.10"

[dependencies.tower]
optional = true
version = "0.5"

[dependencies.tracing]
version = "0.1"

[dependencies.tracing-opentelemetry]
optional = true
version = "0.27"

[dependencies.tracing-subscriber]
features = ["env-filter"]
optional = true
version = "0.3"

[dependencies.twox-hash]
optional = true
version = "2.1"

[dependencies.url]
version = "2.5"

[dependencies.uuid]
features = ["v4"]
optional = true
version = "1.0"

[dev-dependencies.assert_cmd]
version = "2.0"

[dev-dependencies.chrono]
features = ["serde"]
version = "0.4"

[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]
features = ["env-filter"]
version = "0.3"

[dev-dependencies.twox-hash]
version = "2.1"

[dev-dependencies.uuid]
features = ["v4"]
version = "1.0"

[[example]]
name = "demo"
path = "examples/demo/main.rs"

[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 = ["regex"]
config-toml = ["toml", "regex"]
config-yaml = ["serde_yaml", "regex"]
default = ["sqlite", "runtime-tokio-rustls", "permission", "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", "regex", "lru"]
migration = []
minimal = ["runtime-tokio-rustls", "sqlite", "config-env", "lru", "regex", "sql-parser"]
mysql = ["sea-orm/sqlx-mysql", "sea-orm/macros"]
permission = ["dashmap", "lru", "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"]
sql-parser = ["sqlparser", "regex", "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", "once_cell"]
with-json = ["sea-orm/with-json"]

[lib]
name = "dbnexus"
path = "src/lib.rs"

[lints.clippy]

[lints.rust]

[package]
authors = ["Kirky.X"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = "build.rs"
categories = ["database", "asynchronous"]
description = "An enterprise-grade database abstraction layer for Rust with built-in permission control and connection pooling"
documentation = "https://docs.rs/dbnexus"
edition = "2024"
keywords = ["database", "orm", "sea-orm", "sql"]
license = "MIT"
name = "dbnexus"
readme = "README.md"
repository = "https://github.com/Kirky-X/dbnexus"
resolver = "2"
rust-version = "1.85"
version = "0.1.2"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[[test]]
name = "audit_integration"
path = "tests/audit/integration/audit_integration.rs"
required-features = ["audit"]

[[test]]
name = "core_config_integration"
path = "tests/core/integration/config_integration.rs"
required-features = ["config-yaml", "permission"]

[[test]]
name = "core_entity_integration"
path = "tests/core/integration/entity_integration.rs"
required-features = ["macros"]

[[test]]
name = "core_permission_integration"
path = "tests/core/integration/permission_integration.rs"
required-features = ["permission"]

[[test]]
name = "core_session_transaction"
path = "tests/core/integration/session_transaction.rs"
required-features = ["permission"]

[[test]]
name = "core_sql_parser_integration"
path = "tests/core/integration/sql_parser_integration.rs"
required-features = ["sql-parser"]

[[test]]
name = "cross_cutting_benchmarks"
path = "tests/cross_cutting/benchmarks/benchmarks.rs"
required-features = ["permission"]

[[test]]
name = "cross_cutting_cli"
path = "tests/cross_cutting/cli/cli_integration.rs"
required-features = ["cli-tests"]

[[test]]
name = "cross_cutting_concurrency"
path = "tests/cross_cutting/integration/concurrency.rs"
required-features = ["permission"]

[[test]]
name = "cross_cutting_multi_db"
path = "tests/cross_cutting/integration/multi_db.rs"
required-features = ["migration"]

[[test]]
name = "global_index_integration"
path = "tests/global_index/integration/global_index_integration.rs"
required-features = ["global-index", "sqlite"]

[[test]]
name = "metrics_integration"
path = "tests/metrics/integration/metrics_integration.rs"
required-features = ["metrics"]

[[test]]
name = "migration_auto_migrate"
path = "tests/migration/integration/auto_migrate.rs"
required-features = ["auto-migrate"]

[[test]]
name = "migration_integration"
path = "tests/migration/integration/integration.rs"
required-features = ["migration"]

[[test]]
name = "mod"
path = "tests/mod.rs"

[[test]]
name = "permission_engine_integration"
path = "tests/permission/integration/permission_engine_integration.rs"
required-features = ["permission-engine"]

[[test]]
name = "sharding_integration"
path = "tests/sharding/integration/sharding_integration.rs"
required-features = ["sharding"]

[[test]]
name = "tracing_integration"
path = "tests/tracing/integration/tracing_integration.rs"
required-features = ["tracing"]