[package]
name = "rvlite"
version = "0.3.0"
edition = "2021"
description = "Standalone vector database with SQL, SPARQL, and Cypher - powered by RuVector WASM"
license = "MIT OR Apache-2.0"
repository = "https://github.com/ruvnet/ruvector"
authors = ["RuVector Contributors"]

[lib]
crate-type = ["cdylib", "rlib"]

[dependencies]
# ===== 100% REUSE - Existing WASM Crates =====
ruvector-core = { version = "2.0.1", path = "../ruvector-core", default-features = false, features = ["memory-only"] }
# Note: ruvector-wasm, ruvector-graph-wasm, ruvector-gnn-wasm will be added after validating they exist

# Optional features (to be enabled after basic integration works)
# sona = { path = "../sona", features = ["wasm"], optional = true }
# micro-hnsw-wasm = { path = "../micro-hnsw-wasm", optional = true }

# ===== NEW - SQL Engine (to be added later) =====
# sqlparser = { version = "0.49", optional = true }

# ===== WASM Bindings =====
wasm-bindgen = "0.2"
wasm-bindgen-futures = "0.4"
js-sys = "0.3"
web-sys = { version = "0.3", features = [
    "console",
    "Window",
    "Event",
    "EventTarget",
    "DomException",
    "DomStringList",
    "IdbDatabase",
    "IdbFactory",
    "IdbObjectStore",
    "IdbObjectStoreParameters",
    "IdbTransaction",
    "IdbTransactionMode",
    "IdbRequest",
    "IdbOpenDbRequest",
    "IdbKeyRange",
    "IdbCursorDirection",
] }
serde-wasm-bindgen = "0.6"
console_error_panic_hook = "0.1"

# ===== Standard Dependencies =====
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
thiserror = "1.0"
anyhow = "1.0"
parking_lot = "0.12"
once_cell = "1.19"

[dev-dependencies]
wasm-bindgen-test = "0.3"

# Ensure getrandom uses js feature for WASM
# Note: We use a direct dependency instead of workspace to specify version
[target.'cfg(target_arch = "wasm32")'.dependencies]
getrandom = { version = "0.2", features = ["js"] }

[features]
default = []
# Feature flags to be added later
# sql = ["dep:sqlparser"]
# sparql = []
# cypher = []
# gnn = []
# learning = ["dep:sona"]
# full = ["sql", "sparql", "cypher", "gnn", "learning"]

[profile.release]
opt-level = "z"        # Optimize for size
lto = true             # Link-time optimization
codegen-units = 1      # Single codegen unit (better optimization)
panic = "abort"        # No unwinding (saves space)
strip = true           # Strip debug symbols

[profile.release.package."*"]
opt-level = "z"        # Apply to all dependencies

[package.metadata.wasm-pack.profile.release]
wasm-opt = false  # Disabled temporarily due to validation error
