[package]
name = "gluesql"
version = "0.4.0"
authors = ["Taehoon Moon <taehoon.moon@outlook.com>"]
edition = "2018"
description = "GlueSQL - Open source SQL database engine fully written in Rust with pure functional execution layer, easily swappable storage and web assembly support!"
license = "Apache-2.0"
repository = "https://github.com/gluesql/gluesql"
documentation = "https://docs.rs/gluesql/"
readme = "README.md"
keywords = ["sql-database", "sql", "functional", "no-mut-in-the-middle", "webassembly"]

[package.metadata.docs.rs]
all-features = true

[features]
default = ["sled-storage", "alter-table"]

# ALTER TABLE is optional.
# You can include whether ALTER TABLE support or not for your custom database implementation.
alter-table = []

# Who wants to make a custom storage engine,
# default storage engine sled-storage is not required.
sled-storage = ["sled", "bincode"]

[dependencies]
async-trait = "0.1.41"
async-recursion = "0.3.1"
boolinator = "2.4.0"
futures = "0.3"
indexmap = "1.6.0"
im-rc = "15.0.0"
iter-enum = "0.2.4"
itertools = "0.9.0"
pin-project = "1.0.1"
serde = { version = "1.0.117", features = ["derive"] }
sqlparser = { version = "0.6.1", features = ["serde"] }
thiserror = "1.0.21"

# dependencies for sled-storage
bincode = { version = "1.3.1", optional = true }
sled = { version = "0.34.4", optional = true }

[dev-dependencies]
tokio = { version = "0.3.3", features = ["macros", "rt"] }
criterion = "0.3"

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