[package]
name = "sz-orm-core"
description = "Core ORM engine: Model trait, ActiveRecord, QueryBuilder, Pool, Transaction, migration, and SQL dialect abstraction"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
keywords.workspace = true
categories.workspace = true
[features]
default = []
testing = ["tokio/full"]
db-verify = ["sz-orm-macros/db-verify"]
redis = ["dep:redis"]
circuit-breaker = ["sz-orm-health"]
rate-limit = ["sz-orm-limit"]
[dependencies]
async-trait.workspace = true
tracing.workspace = true
thiserror.workspace = true
serde.workspace = true
serde_json.workspace = true
chrono.workspace = true
bytes.workspace = true
tokio = { workspace = true, features = ["sync", "time", "rt", "macros"] }
parking_lot.workspace = true
crossbeam-queue.workspace = true
futures.workspace = true
sz-orm-sql-validator = { version = "1.0.0", path = "../sz-orm-sql-validator" }
sz-orm-macros = { version = "1.0.0", path = "../sz-orm-macros" }
sz-orm-health = { version = "1.0.0", path = "../sz-orm-health", optional = true }
sz-orm-limit = { version = "1.0.0", path = "../sz-orm-limit", optional = true }
redis = { workspace = true, optional = true }
[dev-dependencies]
tokio = { workspace = true, features = ["full", "test-util"] }
sqlx = { version = "0.9", default-features = false, features = ["runtime-tokio", "tls-rustls", "mysql", "postgres", "sqlite", "chrono", "json"] }
rusqlite = { version = "0.32", features = ["bundled"] }
oracle = { version = "0.6", default-features = false, features = ["chrono"] }
criterion = { version = "0.5", features = ["html_reports", "async_tokio"] }
proptest = { workspace = true }
[lib]
name = "sz_orm_core"
path = "src/lib.rs"
[[test]]
name = "core_tests"
path = "tests/core.rs"
[[test]]
name = "integration_sqlite"
path = "tests/integration_sqlite.rs"
[[test]]
name = "integration_mysql"
path = "tests/integration_mysql.rs"
[[test]]
name = "integration_pg"
path = "tests/integration_pg.rs"
[[test]]
name = "integration_oracle"
path = "tests/integration_oracle.rs"
[[test]]
name = "contracts"
path = "tests/contracts.rs"
[[test]]
name = "property"
path = "tests/property.rs"
[[test]]
name = "soak"
path = "tests/soak.rs"
[[test]]
name = "chaos_pool"
path = "tests/chaos_pool.rs"
[[bench]]
name = "core_bench"
path = "benches/core_bench.rs"
harness = false
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[lints]
workspace = true