[package]
name = "tideorm"
version = "0.1.0"
edition = "2024"
authors = ["TideORM Contributors"]
description = "A developer-friendly ORM for Rust - Laravel Eloquent / Rails ActiveRecord inspired"
license = "MIT"
repository = "https://github.com/mohamadzoh/tideorm"
homepage = "https://tideorm.com"
keywords = ["orm", "database", "postgres", "activerecord", "eloquent"]
categories = ["database"]

[workspace]
members = [".", "tideorm-macros"]

[features]
default = ["postgres", "runtime-tokio"]
postgres = ["sea-orm/sqlx-postgres"]
mysql = ["sea-orm/sqlx-mysql"]
sqlite = ["sea-orm/sqlx-sqlite"]
runtime-tokio = ["sea-orm/runtime-tokio-rustls", "tokio/rt-multi-thread"]
runtime-async-std = ["sea-orm/runtime-async-std-rustls"]

[dependencies]
# Internal ORM engine (NEVER exposed publicly)
sea-orm = { version = "1.1.19", default-features = false, features = ["macros", "with-chrono", "with-json", "with-uuid"] }

# Async runtime
tokio = { version = "1.0", features = ["full"], optional = true }
async-trait = "0.1.89"

# Serialization
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.149"

# Types
chrono = { version = "0.4.42", features = ["serde"] }
uuid = { version = "1.19.0", features = ["serde", "v4"] }
rust_decimal = { version = "1.39.0", features = ["serde"] }

# Error handling
thiserror = "2.0.17"

# Derive macros (our own crate)
tideorm-macros = { version = "0.1.0", path = "tideorm-macros" }

# Utils
parking_lot = "0.12"

[dev-dependencies]
tokio = { version = "1.49.0", features = ["full", "test-util", "macros"] }
pretty_assertions = "1.4.1"
serial_test = "3.3.1"
criterion = { version = "0.8.1", features = ["async_tokio", "html_reports"] }
dotenvy = "0.15.7"

# Benchmarks run with: cargo bench
[[bench]]
name = "crud_benchmarks"
harness = false

[[bench]]
name = "query_benchmarks"
harness = false

[[bench]]
name = "attachments_translations_benchmarks"
harness = false
