[package]
name = "fletch-orm"
version = "1.0.0"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
readme = "README.md"
documentation = "https://docs.rs/fletch-orm"
description = "Lightweight database toolkit built on SQLx"
keywords = ["database", "sqlx", "orm", "sqlite", "postgres"]
categories = ["database"]
[lints]
workspace = true
[features]
default = ["runtime-tokio", "macros"]
sqlite = ["sqlx/sqlite"]
postgres = ["sqlx/postgres"]
mysql = ["sqlx/mysql"]
runtime-tokio = ["sqlx/runtime-tokio"]
macros = ["dep:fletch-orm-macros"]
serde = ["dep:serde"]
uuid = ["dep:uuid", "sqlx/uuid"]
chrono = ["dep:chrono", "sqlx/chrono"]
json = ["dep:serde_json", "sqlx/json"]
extended-types = ["uuid", "chrono", "json"]
[dependencies]
sqlx = { version = "0.8", default-features = false }
thiserror = "2"
serde = { version = "1", features = ["derive"], optional = true }
uuid = { version = "1", optional = true }
chrono = { version = "0.4", optional = true, features = ["serde"] }
serde_json = { version = "1", optional = true }
fletch-orm-macros = { path = "../fletch-orm-macros", version = "1.0.0", optional = true }
[dev-dependencies]
sqlx = { version = "0.8", features = ["sqlite", "postgres", "mysql", "runtime-tokio", "uuid", "chrono", "json"] }
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
uuid = { version = "1", features = ["v4"] }
chrono = { version = "0.4" }
serde_json = { version = "1" }
[[test]]
name = "value_binding"
path = "tests/value_binding.rs"
required-features = ["sqlite", "uuid", "chrono", "json"]