[package]
name = "picovolt"
version = "0.3.0"
edition = "2021"
rust-version = "1.74"
description = "PicoVolt (PVDB): a polymorphic embedded database engine in Rust."
license = "Apache-2.0"
repository = "https://github.com/MiniJe/picovolt"
readme = "README.md"
keywords = ["database", "embedded", "storage-engine", "mvcc", "columnar"]
categories = ["database-implementations"]
# Keep the published Rust package lean; these are repo-only tooling.
exclude = ["/fuzz", "/.github"]

# `cdylib` is needed for the wasm/npm build (wasm-pack); `rlib` for normal use.
[lib]
crate-type = ["cdylib", "rlib"]

[features]
# Enable the JavaScript/npm bindings (build for wasm32 with wasm-pack).
wasm = ["dep:wasm-bindgen", "dep:console_error_panic_hook"]

[dependencies]
thiserror = "1.0"
blake3 = "1"
memmap2 = "0.9"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
wasmi = "0.50"

# Optional, only compiled with `--features wasm`.
wasm-bindgen = { version = "0.2", optional = true }
console_error_panic_hook = { version = "0.1", optional = true }

[dev-dependencies]
wat = "1"
tempfile = "3"

[lints.rust]
unsafe_code = "allow"
