Squashed 'vendor/ruvector/' content from commit b64c2172
git-subtree-dir: vendor/ruvector git-subtree-split: b64c21726f2bb37286d9ee36a7869fef60cc6900
This commit is contained in:
91
crates/ruvector-wasm/Cargo.toml
Normal file
91
crates/ruvector-wasm/Cargo.toml
Normal file
@@ -0,0 +1,91 @@
|
||||
[package]
|
||||
name = "ruvector-wasm"
|
||||
version.workspace = true
|
||||
edition.workspace = true
|
||||
rust-version.workspace = true
|
||||
license.workspace = true
|
||||
authors.workspace = true
|
||||
repository.workspace = true
|
||||
readme = "README.md"
|
||||
description = "WASM bindings for Ruvector including kernel pack system (ADR-005)"
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib", "rlib"]
|
||||
|
||||
[dependencies]
|
||||
ruvector-core = { path = "../ruvector-core", default-features = false, features = ["memory-only", "uuid-support"] }
|
||||
ruvector-collections = { path = "../ruvector-collections", optional = true }
|
||||
ruvector-filter = { path = "../ruvector-filter", optional = true }
|
||||
parking_lot = { workspace = true }
|
||||
getrandom = { workspace = true }
|
||||
|
||||
# Add getrandom 0.2 with js feature for WASM compatibility
|
||||
# This ensures all transitive dependencies use the WASM-compatible version
|
||||
getrandom02 = { package = "getrandom", version = "0.2", features = ["js"] }
|
||||
|
||||
# WASM
|
||||
wasm-bindgen = { workspace = true }
|
||||
wasm-bindgen-futures = { workspace = true }
|
||||
js-sys = { workspace = true }
|
||||
web-sys = { workspace = true, features = [
|
||||
"console",
|
||||
"Window",
|
||||
"IdbDatabase",
|
||||
"IdbFactory",
|
||||
"IdbObjectStore",
|
||||
"IdbRequest",
|
||||
"IdbTransaction",
|
||||
"IdbOpenDbRequest",
|
||||
] }
|
||||
|
||||
# Error handling
|
||||
thiserror = { workspace = true }
|
||||
anyhow = { workspace = true }
|
||||
|
||||
# Serialization
|
||||
serde = { workspace = true }
|
||||
serde_json = { workspace = true }
|
||||
serde-wasm-bindgen = "0.6"
|
||||
|
||||
# Utils
|
||||
console_error_panic_hook = "0.1"
|
||||
tracing-wasm = "0.2"
|
||||
|
||||
# Cryptography for kernel pack verification (ADR-005)
|
||||
sha2 = { version = "0.10", optional = true }
|
||||
ed25519-dalek = { version = "2.1", optional = true }
|
||||
hex = { version = "0.4", optional = true }
|
||||
base64 = { version = "0.22", optional = true }
|
||||
rand = { workspace = true, optional = true }
|
||||
|
||||
[dev-dependencies]
|
||||
wasm-bindgen-test = "0.3"
|
||||
rand = { workspace = true }
|
||||
|
||||
[features]
|
||||
default = []
|
||||
simd = ["ruvector-core/simd"]
|
||||
# Collections and filter features (not available in WASM due to file I/O requirements)
|
||||
# These features are provided for completeness but will not work in browser WASM
|
||||
collections = ["dep:ruvector-collections", "dep:ruvector-filter"]
|
||||
# Kernel pack system (ADR-005) - sandboxed compute kernel execution
|
||||
kernel-pack = ["dep:sha2", "dep:ed25519-dalek", "dep:hex", "dep:base64"]
|
||||
# Enable kernel signing capability (requires rand)
|
||||
signing = ["kernel-pack", "dep:rand"]
|
||||
|
||||
# Ensure getrandom uses wasm_js/js features for WASM (both 0.2 and 0.3 versions)
|
||||
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
||||
# getrandom 0.3.x uses wasm_js feature
|
||||
getrandom = { workspace = true, features = ["wasm_js"] }
|
||||
|
||||
[profile.release]
|
||||
opt-level = "z"
|
||||
lto = true
|
||||
codegen-units = 1
|
||||
panic = "abort"
|
||||
|
||||
[profile.release.package."*"]
|
||||
opt-level = "z"
|
||||
|
||||
[package.metadata.wasm-pack.profile.release]
|
||||
wasm-opt = false
|
||||
Reference in New Issue
Block a user