Squashed 'vendor/ruvector/' content from commit b64c2172
git-subtree-dir: vendor/ruvector git-subtree-split: b64c21726f2bb37286d9ee36a7869fef60cc6900
This commit is contained in:
47
patches/README.md
Normal file
47
patches/README.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# Patches Directory
|
||||
|
||||
**CRITICAL: Do not delete this directory or its contents!**
|
||||
|
||||
This directory contains patched versions of external crates that are necessary for building RuVector.
|
||||
|
||||
## hnsw_rs
|
||||
|
||||
The `hnsw_rs` directory contains a patched version of the [hnsw_rs](https://crates.io/crates/hnsw_rs) crate.
|
||||
|
||||
### Why this patch exists
|
||||
|
||||
The official hnsw_rs crate uses `rand 0.9` which is **incompatible with WebAssembly (WASM)** builds. This patched version:
|
||||
|
||||
1. Uses `rand 0.8` instead of `rand 0.9` for WASM compatibility
|
||||
2. Uses Rust edition 2021 (not 2024) for stable Rust toolchain compatibility
|
||||
|
||||
### How it's used
|
||||
|
||||
The patch is applied via `Cargo.toml` at the workspace root:
|
||||
|
||||
```toml
|
||||
[patch.crates-io]
|
||||
hnsw_rs = { path = "./patches/hnsw_rs" }
|
||||
```
|
||||
|
||||
This ensures all workspace crates that depend on `hnsw_rs` use this patched version.
|
||||
|
||||
### What depends on it
|
||||
|
||||
- `ruvector-core` (with `hnsw` feature enabled by default)
|
||||
- `ruvector-graph` (with `hnsw_rs` feature)
|
||||
- All native builds (Node.js bindings, CLI tools)
|
||||
|
||||
### Consequences of deletion
|
||||
|
||||
If this directory is deleted:
|
||||
- **All CI builds will fail** (Build Native Modules, PostgreSQL Extension CI, etc.)
|
||||
- `cargo build` will fail with "failed to load source for dependency `hnsw_rs`"
|
||||
- The project cannot be compiled
|
||||
|
||||
### Updating the patch
|
||||
|
||||
If you need to update hnsw_rs:
|
||||
1. Download the new version from crates.io
|
||||
2. Apply the rand 0.8 compatibility changes from the current patch
|
||||
3. Test WASM and native builds before committing
|
||||
Reference in New Issue
Block a user