[package]
name         = "spg-embedded-tokio"
# v7.10.0 — new crate. First published version follows the
# workspace version (= the v7.10 series ship rollup), so we
# don't drift from the rest of the workspace.
version      = { workspace = true }
edition      = { workspace = true }
rust-version = { workspace = true }
authors      = { workspace = true }
license      = { workspace = true }
readme       = "README.md"
repository   = { workspace = true }
description  = "Tokio-friendly async wrapper around spg-embedded. Single-writer Database serialised via tokio::sync::Mutex; blocking engine calls dispatched via spawn_blocking so the runtime never stalls on WAL fsync."
categories   = ["database", "asynchronous"]
keywords     = ["spg", "database", "async", "tokio", "embedded"]

[dependencies]
spg-embedded = { workspace = true }
# v7.10.0 — `rt` provides spawn_blocking; `sync` provides Mutex.
# No `macros`, no `net`, no `io-*` — keep the surface minimal so
# downstream consumers can run on any tokio runtime flavour
# (`current-thread` or multi-thread). Default features OFF for
# the same reason — we opt into the exact two we need.
tokio = { version = "1", default-features = false, features = ["rt", "sync"] }

# v7.10.0 — engine error types surface through the async API
# unchanged. Pulling spg-engine here too lets downstream `use
# spg_embedded_tokio::{AsyncDatabase, EngineError, QueryResult}`
# read clean without a separate import.
spg-engine = { workspace = true }

[dev-dependencies]
# `rt-multi-thread` + `macros` for the e2e tests' #[tokio::test].
tokio = { version = "1", features = ["rt-multi-thread", "macros", "time"] }

[lints]
workspace = true
