tork-orm-core 0.1.0

Core runtime for the Tork ORM: dialect-agnostic query model, typed columns, and database drivers.
Documentation
[package]
name = "tork-orm-core"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
description = "Core runtime for the Tork ORM: dialect-agnostic query model, typed columns, and database drivers."

[dependencies]
tokio = { workspace = true }
time = { workspace = true, features = ["formatting", "parsing", "macros"] }
serde_json = { workspace = true }
uuid = { workspace = true }
rusqlite = { workspace = true, optional = true }
tokio-postgres = { workspace = true, optional = true }
deadpool-postgres = { workspace = true, optional = true }
bytes = { workspace = true, optional = true }
mysql_async = { workspace = true, optional = true }
tork-core = { workspace = true, optional = true }
inventory = { workspace = true, optional = true }

[features]
default = ["sqlite", "tork", "migrations"]
# Bundled SQLite backend. The only database backend in this phase.
sqlite = ["dep:rusqlite"]
# PostgreSQL backend: the live tokio-postgres driver and async pool. The
# PostgreSQL dialect (SQL/DDL generation) is always available; this feature adds
# the network driver needed to connect to a server.
postgres = ["dep:tokio-postgres", "dep:deadpool-postgres", "dep:bytes"]
# MySQL backend: the live mysql_async driver and pool. Like `postgres`, the
# dialect is always available; this feature adds the network driver.
mysql = ["dep:mysql_async"]
# Schema migrations (the migration engine) and `migrate generate`. The link-time
# model registry that generate enumerates pulls in `inventory`; generated
# migration files get revision ids from `uuid`.
migrations = ["dep:inventory"]
# Native integration with the Tork web framework (error bridge and resource
# injection). Disable for a standalone async ORM.
tork = ["dep:tork-core"]

[dev-dependencies]
tokio = { workspace = true, features = ["rt-multi-thread", "macros"] }
tempfile = { workspace = true }