Squashed 'vendor/ruvector/' content from commit b64c2172
git-subtree-dir: vendor/ruvector git-subtree-split: b64c21726f2bb37286d9ee36a7869fef60cc6900
This commit is contained in:
53
npm/core/platforms/darwin-arm64/README.md
Normal file
53
npm/core/platforms/darwin-arm64/README.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# @ruvector/core-darwin-arm64
|
||||
|
||||
Native macOS ARM64 bindings for @ruvector/core.
|
||||
|
||||
This package contains the native Node.js addon for macOS (Apple Silicon) systems.
|
||||
|
||||
## Installation
|
||||
|
||||
This package is automatically installed as an optional dependency of `@ruvector/core` when running on macOS ARM64 systems.
|
||||
|
||||
```bash
|
||||
npm install @ruvector/core
|
||||
```
|
||||
|
||||
## Direct Installation
|
||||
|
||||
You can also install this package directly:
|
||||
|
||||
```bash
|
||||
npm install @ruvector/core-darwin-arm64
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```javascript
|
||||
const { VectorDb } = require('@ruvector/core-darwin-arm64');
|
||||
|
||||
const db = new VectorDb({
|
||||
dimensions: 128,
|
||||
storagePath: './vectors.db'
|
||||
});
|
||||
|
||||
// Insert vectors
|
||||
await db.insert({
|
||||
id: 'vec1',
|
||||
vector: new Float32Array([...])
|
||||
});
|
||||
|
||||
// Search
|
||||
const results = await db.search({
|
||||
vector: new Float32Array([...]),
|
||||
k: 10
|
||||
});
|
||||
```
|
||||
|
||||
## Requirements
|
||||
|
||||
- Node.js >= 18
|
||||
- macOS (Apple Silicon - M1, M2, M3, etc.)
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
14
npm/core/platforms/darwin-arm64/index.js
Normal file
14
npm/core/platforms/darwin-arm64/index.js
Normal file
@@ -0,0 +1,14 @@
|
||||
const { join } = require('path');
|
||||
|
||||
let nativeBinding;
|
||||
try {
|
||||
nativeBinding = require('./ruvector.node');
|
||||
} catch (error) {
|
||||
throw new Error(
|
||||
'Failed to load native binding for darwin-arm64. ' +
|
||||
'This package may have been installed incorrectly. ' +
|
||||
'Error: ' + error.message
|
||||
);
|
||||
}
|
||||
|
||||
module.exports = nativeBinding;
|
||||
60
npm/core/platforms/darwin-arm64/package.json
Normal file
60
npm/core/platforms/darwin-arm64/package.json
Normal file
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"name": "ruvector-core-darwin-arm64",
|
||||
"version": "0.1.25",
|
||||
"description": "macOS ARM64 (Apple Silicon M1/M2/M3) native binding for ruvector-core - High-performance vector database with HNSW indexing built in Rust",
|
||||
"main": "index.js",
|
||||
"type": "commonjs",
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"author": "ruv.io Team <info@ruv.io> (https://ruv.io)",
|
||||
"homepage": "https://ruv.io",
|
||||
"engines": {
|
||||
"node": ">= 18"
|
||||
},
|
||||
"files": [
|
||||
"index.js",
|
||||
"ruvector.node",
|
||||
"*.node",
|
||||
"README.md"
|
||||
],
|
||||
"keywords": [
|
||||
"ruvector",
|
||||
"vector-database",
|
||||
"vector-search",
|
||||
"similarity-search",
|
||||
"semantic-search",
|
||||
"hnsw",
|
||||
"native",
|
||||
"napi",
|
||||
"rust",
|
||||
"macos",
|
||||
"darwin",
|
||||
"arm64",
|
||||
"apple-silicon",
|
||||
"m1",
|
||||
"m2",
|
||||
"m3",
|
||||
"ai",
|
||||
"machine-learning",
|
||||
"embedding-database",
|
||||
"simd",
|
||||
"performance",
|
||||
"ruv"
|
||||
],
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/ruvnet/ruvector.git",
|
||||
"directory": "npm/core/platforms/darwin-arm64"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/ruvnet/ruvector/issues"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
}
|
||||
}
|
||||
BIN
npm/core/platforms/darwin-arm64/ruvector.node
Executable file
BIN
npm/core/platforms/darwin-arm64/ruvector.node
Executable file
Binary file not shown.
53
npm/core/platforms/darwin-x64/README.md
Normal file
53
npm/core/platforms/darwin-x64/README.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# @ruvector/core-darwin-x64
|
||||
|
||||
Native macOS x64 bindings for @ruvector/core.
|
||||
|
||||
This package contains the native Node.js addon for macOS (Intel) systems.
|
||||
|
||||
## Installation
|
||||
|
||||
This package is automatically installed as an optional dependency of `@ruvector/core` when running on macOS x64 systems.
|
||||
|
||||
```bash
|
||||
npm install @ruvector/core
|
||||
```
|
||||
|
||||
## Direct Installation
|
||||
|
||||
You can also install this package directly:
|
||||
|
||||
```bash
|
||||
npm install @ruvector/core-darwin-x64
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```javascript
|
||||
const { VectorDb } = require('@ruvector/core-darwin-x64');
|
||||
|
||||
const db = new VectorDb({
|
||||
dimensions: 128,
|
||||
storagePath: './vectors.db'
|
||||
});
|
||||
|
||||
// Insert vectors
|
||||
await db.insert({
|
||||
id: 'vec1',
|
||||
vector: new Float32Array([...])
|
||||
});
|
||||
|
||||
// Search
|
||||
const results = await db.search({
|
||||
vector: new Float32Array([...]),
|
||||
k: 10
|
||||
});
|
||||
```
|
||||
|
||||
## Requirements
|
||||
|
||||
- Node.js >= 18
|
||||
- macOS (Intel processors)
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
14
npm/core/platforms/darwin-x64/index.js
Normal file
14
npm/core/platforms/darwin-x64/index.js
Normal file
@@ -0,0 +1,14 @@
|
||||
const { join } = require('path');
|
||||
|
||||
let nativeBinding;
|
||||
try {
|
||||
nativeBinding = require('./ruvector.node');
|
||||
} catch (error) {
|
||||
throw new Error(
|
||||
'Failed to load native binding for darwin-x64. ' +
|
||||
'This package may have been installed incorrectly. ' +
|
||||
'Error: ' + error.message
|
||||
);
|
||||
}
|
||||
|
||||
module.exports = nativeBinding;
|
||||
53
npm/core/platforms/darwin-x64/package.json
Normal file
53
npm/core/platforms/darwin-x64/package.json
Normal file
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"name": "ruvector-core-darwin-x64",
|
||||
"version": "0.1.25",
|
||||
"description": "macOS x64 (Intel) native binding for ruvector-core - High-performance vector database with HNSW indexing built in Rust",
|
||||
"main": "index.js",
|
||||
"type": "commonjs",
|
||||
"os": ["darwin"],
|
||||
"cpu": ["x64"],
|
||||
"author": "ruv.io Team <info@ruv.io> (https://ruv.io)",
|
||||
"homepage": "https://ruv.io",
|
||||
"engines": {
|
||||
"node": ">= 18"
|
||||
},
|
||||
"files": [
|
||||
"index.js",
|
||||
"ruvector.node",
|
||||
"*.node",
|
||||
"README.md"
|
||||
],
|
||||
"keywords": [
|
||||
"ruvector",
|
||||
"vector-database",
|
||||
"vector-search",
|
||||
"similarity-search",
|
||||
"semantic-search",
|
||||
"hnsw",
|
||||
"native",
|
||||
"napi",
|
||||
"rust",
|
||||
"macos",
|
||||
"darwin",
|
||||
"x64",
|
||||
"intel",
|
||||
"ai",
|
||||
"machine-learning",
|
||||
"embedding-database",
|
||||
"simd",
|
||||
"performance",
|
||||
"ruv"
|
||||
],
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/ruvnet/ruvector.git",
|
||||
"directory": "npm/core/platforms/darwin-x64"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/ruvnet/ruvector/issues"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
}
|
||||
}
|
||||
BIN
npm/core/platforms/darwin-x64/ruvector.node
Executable file
BIN
npm/core/platforms/darwin-x64/ruvector.node
Executable file
Binary file not shown.
135
npm/core/platforms/linux-arm64-gnu/README.md
Normal file
135
npm/core/platforms/linux-arm64-gnu/README.md
Normal file
@@ -0,0 +1,135 @@
|
||||
# ruvector-core-linux-arm64-gnu
|
||||
|
||||
[](https://www.npmjs.com/package/ruvector-core-linux-arm64-gnu)
|
||||
[](https://opensource.org/licenses/MIT)
|
||||
|
||||
**Linux ARM64 GNU native binding for ruvector-core**
|
||||
|
||||
This package contains the native Node.js binding (`.node` file) for Linux ARM64 systems with GNU libc. It is automatically installed as an optional dependency when you install `ruvector-core` on a compatible system.
|
||||
|
||||
🌐 **[Visit ruv.io](https://ruv.io)** for more AI infrastructure tools
|
||||
|
||||
## Installation
|
||||
|
||||
**You should not install this package directly.** Instead, install the main package:
|
||||
|
||||
```bash
|
||||
npm install ruvector-core
|
||||
```
|
||||
|
||||
The correct platform-specific package will be automatically installed based on your system.
|
||||
|
||||
## System Requirements
|
||||
|
||||
- **Operating System**: Linux (GNU libc)
|
||||
- **Architecture**: ARM64 / AArch64
|
||||
- **Node.js**: 18.0.0 or higher
|
||||
- **libc**: GNU C Library (glibc)
|
||||
|
||||
## Compatibility
|
||||
|
||||
This package is compatible with:
|
||||
- Ubuntu 18.04+ (ARM64)
|
||||
- Debian 10+ Buster (ARM64)
|
||||
- CentOS 7+ / RHEL 7+ (ARM64)
|
||||
- Amazon Linux 2+ (Graviton processors)
|
||||
- Raspberry Pi OS 64-bit
|
||||
- Most ARM64 Linux distributions using glibc
|
||||
|
||||
## What's Inside
|
||||
|
||||
This package contains:
|
||||
- **ruvector.node** - Native binary module compiled from Rust for ARM64
|
||||
- **index.js** - Module loader with error handling
|
||||
- Full HNSW indexing implementation
|
||||
- SIMD-optimized vector operations for ARM NEON
|
||||
- Multi-threaded async operations via Tokio
|
||||
|
||||
## Performance
|
||||
|
||||
When running on Linux ARM64 systems (like AWS Graviton), you can expect:
|
||||
- **50,000+ vector inserts per second**
|
||||
- **10,000+ searches per second** (k=10)
|
||||
- **~50 bytes memory per 128-dim vector**
|
||||
- **Sub-millisecond latency** for most operations
|
||||
- Optimized for ARM NEON SIMD instructions
|
||||
|
||||
## Popular ARM64 Platforms
|
||||
|
||||
- **AWS Graviton** (EC2 instances)
|
||||
- **Raspberry Pi 4/5** (64-bit OS)
|
||||
- **NVIDIA Jetson** (edge AI devices)
|
||||
- **Apple Silicon** (via Docker/Linux)
|
||||
- **Oracle Cloud** (Ampere processors)
|
||||
|
||||
## Building from Source
|
||||
|
||||
If you need to rebuild the native module:
|
||||
|
||||
```bash
|
||||
# Clone the repository
|
||||
git clone https://github.com/ruvnet/ruvector.git
|
||||
cd ruvector
|
||||
|
||||
# Install Rust toolchain with ARM64 target
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||||
rustup target add aarch64-unknown-linux-gnu
|
||||
|
||||
# Build for Linux ARM64
|
||||
cd npm/packages/core
|
||||
npm run build:napi -- --target aarch64-unknown-linux-gnu
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Module Not Found Error
|
||||
|
||||
If you see "Cannot find module 'ruvector-core-linux-arm64-gnu'":
|
||||
|
||||
1. Verify you're on a Linux ARM64 system: `uname -m` should output `aarch64`
|
||||
2. Reinstall with optional dependencies: `npm install --include=optional ruvector-core`
|
||||
3. Check Node.js version: `node --version` should be 18.0.0 or higher
|
||||
|
||||
### Binary Compatibility Issues
|
||||
|
||||
If the module fails to load:
|
||||
1. Ensure you have glibc installed: `ldd --version`
|
||||
2. The binary requires glibc 2.17+ (CentOS 7+) or 2.27+ (Ubuntu 18.04+)
|
||||
3. For Alpine Linux or musl-based systems, this package will not work (use a glibc-based distro)
|
||||
|
||||
### Cross-Compilation
|
||||
|
||||
When building on x64 for ARM64:
|
||||
```bash
|
||||
# Install cross-compilation tools
|
||||
sudo apt-get install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
|
||||
|
||||
# Set environment variable
|
||||
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc
|
||||
|
||||
# Build
|
||||
npm run build:napi -- --target aarch64-unknown-linux-gnu
|
||||
```
|
||||
|
||||
## Related Packages
|
||||
|
||||
- **[ruvector-core](https://www.npmjs.com/package/ruvector-core)** - Main package (install this)
|
||||
- **[ruvector-core-linux-x64-gnu](https://www.npmjs.com/package/ruvector-core-linux-x64-gnu)** - Linux x64
|
||||
- **[ruvector-core-darwin-x64](https://www.npmjs.com/package/ruvector-core-darwin-x64)** - macOS Intel
|
||||
- **[ruvector-core-darwin-arm64](https://www.npmjs.com/package/ruvector-core-darwin-arm64)** - macOS Apple Silicon
|
||||
- **[ruvector-core-win32-x64-msvc](https://www.npmjs.com/package/ruvector-core-win32-x64-msvc)** - Windows x64
|
||||
|
||||
## Resources
|
||||
|
||||
- 🏠 [Homepage](https://ruv.io)
|
||||
- 📦 [GitHub Repository](https://github.com/ruvnet/ruvector)
|
||||
- 📚 [Documentation](https://github.com/ruvnet/ruvector/tree/main/docs)
|
||||
- 🐛 [Issue Tracker](https://github.com/ruvnet/ruvector/issues)
|
||||
|
||||
## License
|
||||
|
||||
MIT License - see [LICENSE](https://github.com/ruvnet/ruvector/blob/main/LICENSE) for details.
|
||||
|
||||
---
|
||||
|
||||
Built with ❤️ by the [ruv.io](https://ruv.io) team
|
||||
14
npm/core/platforms/linux-arm64-gnu/index.js
Normal file
14
npm/core/platforms/linux-arm64-gnu/index.js
Normal file
@@ -0,0 +1,14 @@
|
||||
const { join } = require('path');
|
||||
|
||||
let nativeBinding;
|
||||
try {
|
||||
nativeBinding = require('./ruvector.node');
|
||||
} catch (error) {
|
||||
throw new Error(
|
||||
'Failed to load native binding for linux-arm64-gnu. ' +
|
||||
'This package may have been installed incorrectly. ' +
|
||||
'Error: ' + error.message
|
||||
);
|
||||
}
|
||||
|
||||
module.exports = nativeBinding;
|
||||
58
npm/core/platforms/linux-arm64-gnu/package.json
Normal file
58
npm/core/platforms/linux-arm64-gnu/package.json
Normal file
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"name": "ruvector-core-linux-arm64-gnu",
|
||||
"version": "0.1.25",
|
||||
"description": "Linux ARM64 GNU native binding for ruvector-core - High-performance vector database with HNSW indexing built in Rust",
|
||||
"main": "index.js",
|
||||
"type": "commonjs",
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"author": "ruv.io Team <info@ruv.io> (https://ruv.io)",
|
||||
"homepage": "https://ruv.io",
|
||||
"engines": {
|
||||
"node": ">= 18"
|
||||
},
|
||||
"files": [
|
||||
"index.js",
|
||||
"ruvector.node",
|
||||
"*.node",
|
||||
"README.md"
|
||||
],
|
||||
"keywords": [
|
||||
"ruvector",
|
||||
"vector-database",
|
||||
"vector-search",
|
||||
"similarity-search",
|
||||
"semantic-search",
|
||||
"hnsw",
|
||||
"native",
|
||||
"napi",
|
||||
"rust",
|
||||
"linux",
|
||||
"arm64",
|
||||
"aarch64",
|
||||
"gnu",
|
||||
"glibc",
|
||||
"ai",
|
||||
"machine-learning",
|
||||
"embedding-database",
|
||||
"simd",
|
||||
"performance",
|
||||
"ruv"
|
||||
],
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/ruvnet/ruvector.git",
|
||||
"directory": "npm/core/platforms/linux-arm64-gnu"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/ruvnet/ruvector/issues"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
}
|
||||
}
|
||||
BIN
npm/core/platforms/linux-arm64-gnu/ruvector.node
Executable file
BIN
npm/core/platforms/linux-arm64-gnu/ruvector.node
Executable file
Binary file not shown.
111
npm/core/platforms/linux-x64-gnu/README.md
Normal file
111
npm/core/platforms/linux-x64-gnu/README.md
Normal file
@@ -0,0 +1,111 @@
|
||||
# ruvector-core-linux-x64-gnu
|
||||
|
||||
[](https://www.npmjs.com/package/ruvector-core-linux-x64-gnu)
|
||||
[](https://opensource.org/licenses/MIT)
|
||||
|
||||
**Linux x64 GNU native binding for ruvector-core**
|
||||
|
||||
This package contains the native Node.js binding (`.node` file) for Linux x64 systems with GNU libc. It is automatically installed as an optional dependency when you install `ruvector-core` on a compatible system.
|
||||
|
||||
🌐 **[Visit ruv.io](https://ruv.io)** for more AI infrastructure tools
|
||||
|
||||
## Installation
|
||||
|
||||
**You should not install this package directly.** Instead, install the main package:
|
||||
|
||||
```bash
|
||||
npm install ruvector-core
|
||||
```
|
||||
|
||||
The correct platform-specific package will be automatically installed based on your system.
|
||||
|
||||
## System Requirements
|
||||
|
||||
- **Operating System**: Linux (GNU libc)
|
||||
- **Architecture**: x86_64 (x64)
|
||||
- **Node.js**: 18.0.0 or higher
|
||||
- **libc**: GNU C Library (glibc)
|
||||
|
||||
## Compatibility
|
||||
|
||||
This package is compatible with:
|
||||
- Ubuntu 18.04+ (all versions)
|
||||
- Debian 10+ (Buster and later)
|
||||
- CentOS 7+ / RHEL 7+
|
||||
- Fedora (all supported versions)
|
||||
- Amazon Linux 2+
|
||||
- Most Linux distributions using glibc
|
||||
|
||||
## What's Inside
|
||||
|
||||
This package contains:
|
||||
- **ruvector.node** - Native binary module (4.3 MB) compiled from Rust
|
||||
- **index.js** - Module loader with error handling
|
||||
- Full HNSW indexing implementation
|
||||
- SIMD-optimized vector operations
|
||||
- Multi-threaded async operations via Tokio
|
||||
|
||||
## Performance
|
||||
|
||||
When running on Linux x64 systems, you can expect:
|
||||
- **50,000+ vector inserts per second**
|
||||
- **10,000+ searches per second** (k=10)
|
||||
- **~50 bytes memory per 128-dim vector**
|
||||
- **Sub-millisecond latency** for most operations
|
||||
|
||||
## Building from Source
|
||||
|
||||
If you need to rebuild the native module:
|
||||
|
||||
```bash
|
||||
# Clone the repository
|
||||
git clone https://github.com/ruvnet/ruvector.git
|
||||
cd ruvector
|
||||
|
||||
# Install Rust toolchain
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||||
|
||||
# Build for Linux x64
|
||||
cd npm/packages/core
|
||||
npm run build:napi -- --target x86_64-unknown-linux-gnu
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Module Not Found Error
|
||||
|
||||
If you see "Cannot find module 'ruvector-core-linux-x64-gnu'":
|
||||
|
||||
1. Verify you're on a Linux x64 system: `uname -m` should output `x86_64`
|
||||
2. Reinstall with optional dependencies: `npm install --include=optional ruvector-core`
|
||||
3. Check Node.js version: `node --version` should be 18.0.0 or higher
|
||||
|
||||
### Binary Compatibility Issues
|
||||
|
||||
If the module fails to load:
|
||||
1. Ensure you have glibc installed: `ldd --version`
|
||||
2. The binary requires glibc 2.17+ (CentOS 7+) or 2.27+ (Ubuntu 18.04+)
|
||||
3. For Alpine Linux or musl-based systems, this package will not work (use a glibc-based distro)
|
||||
|
||||
## Related Packages
|
||||
|
||||
- **[ruvector-core](https://www.npmjs.com/package/ruvector-core)** - Main package (install this)
|
||||
- **[ruvector-core-linux-arm64-gnu](https://www.npmjs.com/package/ruvector-core-linux-arm64-gnu)** - Linux ARM64
|
||||
- **[ruvector-core-darwin-x64](https://www.npmjs.com/package/ruvector-core-darwin-x64)** - macOS Intel
|
||||
- **[ruvector-core-darwin-arm64](https://www.npmjs.com/package/ruvector-core-darwin-arm64)** - macOS Apple Silicon
|
||||
- **[ruvector-core-win32-x64-msvc](https://www.npmjs.com/package/ruvector-core-win32-x64-msvc)** - Windows x64
|
||||
|
||||
## Resources
|
||||
|
||||
- 🏠 [Homepage](https://ruv.io)
|
||||
- 📦 [GitHub Repository](https://github.com/ruvnet/ruvector)
|
||||
- 📚 [Documentation](https://github.com/ruvnet/ruvector/tree/main/docs)
|
||||
- 🐛 [Issue Tracker](https://github.com/ruvnet/ruvector/issues)
|
||||
|
||||
## License
|
||||
|
||||
MIT License - see [LICENSE](https://github.com/ruvnet/ruvector/blob/main/LICENSE) for details.
|
||||
|
||||
---
|
||||
|
||||
Built with ❤️ by the [ruv.io](https://ruv.io) team
|
||||
14
npm/core/platforms/linux-x64-gnu/index.js
Normal file
14
npm/core/platforms/linux-x64-gnu/index.js
Normal file
@@ -0,0 +1,14 @@
|
||||
const { join } = require('path');
|
||||
|
||||
let nativeBinding;
|
||||
try {
|
||||
nativeBinding = require('./ruvector.node');
|
||||
} catch (error) {
|
||||
throw new Error(
|
||||
'Failed to load native binding for linux-x64-gnu. ' +
|
||||
'This package may have been installed incorrectly. ' +
|
||||
'Error: ' + error.message
|
||||
);
|
||||
}
|
||||
|
||||
module.exports = nativeBinding;
|
||||
57
npm/core/platforms/linux-x64-gnu/package.json
Normal file
57
npm/core/platforms/linux-x64-gnu/package.json
Normal file
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"name": "ruvector-core-linux-x64-gnu",
|
||||
"version": "0.1.26",
|
||||
"description": "Linux x64 GNU native binding for ruvector-core - High-performance vector database with HNSW indexing built in Rust",
|
||||
"main": "index.js",
|
||||
"type": "commonjs",
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"author": "ruv.io Team <info@ruv.io> (https://ruv.io)",
|
||||
"homepage": "https://ruv.io",
|
||||
"engines": {
|
||||
"node": ">= 18"
|
||||
},
|
||||
"files": [
|
||||
"index.js",
|
||||
"ruvector.node",
|
||||
"*.node",
|
||||
"README.md"
|
||||
],
|
||||
"keywords": [
|
||||
"ruvector",
|
||||
"vector-database",
|
||||
"vector-search",
|
||||
"similarity-search",
|
||||
"semantic-search",
|
||||
"hnsw",
|
||||
"native",
|
||||
"napi",
|
||||
"rust",
|
||||
"linux",
|
||||
"x64",
|
||||
"gnu",
|
||||
"glibc",
|
||||
"ai",
|
||||
"machine-learning",
|
||||
"embedding-database",
|
||||
"simd",
|
||||
"performance",
|
||||
"ruv"
|
||||
],
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/ruvnet/ruvector.git",
|
||||
"directory": "npm/core/platforms/linux-x64-gnu"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/ruvnet/ruvector/issues"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
}
|
||||
}
|
||||
BIN
npm/core/platforms/linux-x64-gnu/ruvector.node
Executable file
BIN
npm/core/platforms/linux-x64-gnu/ruvector.node
Executable file
Binary file not shown.
151
npm/core/platforms/win32-x64-msvc/README.md
Normal file
151
npm/core/platforms/win32-x64-msvc/README.md
Normal file
@@ -0,0 +1,151 @@
|
||||
# ruvector-core-win32-x64-msvc
|
||||
|
||||
[](https://www.npmjs.com/package/ruvector-core-win32-x64-msvc)
|
||||
[](https://opensource.org/licenses/MIT)
|
||||
|
||||
**Windows x64 MSVC native binding for ruvector-core**
|
||||
|
||||
This package contains the native Node.js binding (`.node` file) for Windows x64 systems compiled with MSVC. It is automatically installed as an optional dependency when you install `ruvector-core` on a compatible system.
|
||||
|
||||
🌐 **[Visit ruv.io](https://ruv.io)** for more AI infrastructure tools
|
||||
|
||||
## Installation
|
||||
|
||||
**You should not install this package directly.** Instead, install the main package:
|
||||
|
||||
```bash
|
||||
npm install ruvector-core
|
||||
```
|
||||
|
||||
The correct platform-specific package will be automatically installed based on your system.
|
||||
|
||||
## System Requirements
|
||||
|
||||
- **Operating System**: Windows 10 (1809+) or Windows 11, Windows Server 2019+
|
||||
- **Architecture**: x86_64 (64-bit)
|
||||
- **Node.js**: 18.0.0 or higher
|
||||
- **Visual C++ Runtime**: Automatically included with Node.js
|
||||
|
||||
## Compatibility
|
||||
|
||||
This package is compatible with:
|
||||
- **Windows 10** (version 1809 or later)
|
||||
- **Windows 11** (all versions)
|
||||
- **Windows Server 2019** and newer
|
||||
- Most Windows development environments
|
||||
|
||||
**Note:** Windows ARM64 is not currently supported.
|
||||
|
||||
## What's Inside
|
||||
|
||||
This package contains:
|
||||
- **ruvector.node** - Native binary module compiled from Rust with MSVC
|
||||
- **index.js** - Module loader with error handling
|
||||
- Full HNSW indexing implementation
|
||||
- SIMD-optimized vector operations (AVX2, SSE4.2)
|
||||
- Multi-threaded async operations via Tokio
|
||||
|
||||
## Performance
|
||||
|
||||
When running on Windows x64 systems, you can expect:
|
||||
- **50,000+ vector inserts per second**
|
||||
- **10,000+ searches per second** (k=10)
|
||||
- **~50 bytes memory per 128-dim vector**
|
||||
- **Sub-millisecond latency** for most operations
|
||||
- Optimized for Intel/AMD AVX2 SIMD instructions
|
||||
|
||||
## Building from Source
|
||||
|
||||
If you need to rebuild the native module:
|
||||
|
||||
### Prerequisites
|
||||
|
||||
1. Install **Visual Studio 2022** (or 2019) with "Desktop development with C++" workload
|
||||
2. Install **Rust**: https://rustup.rs/
|
||||
3. Open "x64 Native Tools Command Prompt for VS 2022"
|
||||
|
||||
### Build Steps
|
||||
|
||||
```bash
|
||||
# Clone the repository
|
||||
git clone https://github.com/ruvnet/ruvector.git
|
||||
cd ruvector
|
||||
|
||||
# Build for Windows x64
|
||||
cd npm\packages\core
|
||||
npm run build:napi -- --target x86_64-pc-windows-msvc
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Module Not Found Error
|
||||
|
||||
If you see "Cannot find module 'ruvector-core-win32-x64-msvc'":
|
||||
|
||||
1. Verify you're on Windows 64-bit: `wmic os get osarchitecture` should show "64-bit"
|
||||
2. Reinstall with optional dependencies: `npm install --include=optional ruvector-core`
|
||||
3. Check Node.js version: `node --version` should be 18.0.0 or higher
|
||||
|
||||
### DLL Loading Issues
|
||||
|
||||
If the module fails to load with DLL errors:
|
||||
|
||||
1. **Install Visual C++ Redistributable**:
|
||||
- Download from: https://aka.ms/vs/17/release/vc_redist.x64.exe
|
||||
- Node.js usually includes this, but manual install may be needed
|
||||
|
||||
2. **Check Windows Updates**:
|
||||
- Ensure Windows is up to date
|
||||
- Some MSVC runtimes come through Windows Update
|
||||
|
||||
3. **Verify Node.js Installation**:
|
||||
- Reinstall Node.js from nodejs.org
|
||||
- Use the Windows Installer (.msi) version
|
||||
|
||||
### Long Path Issues
|
||||
|
||||
If you encounter "path too long" errors:
|
||||
|
||||
1. **Enable Long Paths in Windows**:
|
||||
```powershell
|
||||
# Run PowerShell as Administrator
|
||||
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force
|
||||
```
|
||||
|
||||
2. **Or use shorter paths**:
|
||||
- Install Node modules closer to drive root (e.g., `C:\projects\`)
|
||||
|
||||
### Antivirus False Positives
|
||||
|
||||
Some antivirus software may flag native `.node` files:
|
||||
- Add an exception for `node_modules\ruvector-core-win32-x64-msvc\`
|
||||
- Or temporarily disable real-time scanning during npm install
|
||||
|
||||
### WSL2 (Windows Subsystem for Linux)
|
||||
|
||||
If you're using WSL2:
|
||||
- Use the Linux packages instead (`ruvector-core-linux-x64-gnu`)
|
||||
- This Windows package is for native Windows Node.js only
|
||||
|
||||
## Related Packages
|
||||
|
||||
- **[ruvector-core](https://www.npmjs.com/package/ruvector-core)** - Main package (install this)
|
||||
- **[ruvector-core-linux-x64-gnu](https://www.npmjs.com/package/ruvector-core-linux-x64-gnu)** - Linux x64
|
||||
- **[ruvector-core-linux-arm64-gnu](https://www.npmjs.com/package/ruvector-core-linux-arm64-gnu)** - Linux ARM64
|
||||
- **[ruvector-core-darwin-x64](https://www.npmjs.com/package/ruvector-core-darwin-x64)** - macOS Intel
|
||||
- **[ruvector-core-darwin-arm64](https://www.npmjs.com/package/ruvector-core-darwin-arm64)** - macOS Apple Silicon
|
||||
|
||||
## Resources
|
||||
|
||||
- 🏠 [Homepage](https://ruv.io)
|
||||
- 📦 [GitHub Repository](https://github.com/ruvnet/ruvector)
|
||||
- 📚 [Documentation](https://github.com/ruvnet/ruvector/tree/main/docs)
|
||||
- 🐛 [Issue Tracker](https://github.com/ruvnet/ruvector/issues)
|
||||
|
||||
## License
|
||||
|
||||
MIT License - see [LICENSE](https://github.com/ruvnet/ruvector/blob/main/LICENSE) for details.
|
||||
|
||||
---
|
||||
|
||||
Built with ❤️ by the [ruv.io](https://ruv.io) team
|
||||
15
npm/core/platforms/win32-x64-msvc/index.js
Normal file
15
npm/core/platforms/win32-x64-msvc/index.js
Normal file
@@ -0,0 +1,15 @@
|
||||
const { join } = require('path');
|
||||
|
||||
let nativeBinding;
|
||||
try {
|
||||
nativeBinding = require('./ruvector.node');
|
||||
} catch (error) {
|
||||
throw new Error(
|
||||
'Failed to load native binding for win32-x64-msvc. ' +
|
||||
'This package may have been installed incorrectly. ' +
|
||||
'Ensure you have Visual C++ Redistributable installed. ' +
|
||||
'Error: ' + error.message
|
||||
);
|
||||
}
|
||||
|
||||
module.exports = nativeBinding;
|
||||
57
npm/core/platforms/win32-x64-msvc/package.json
Normal file
57
npm/core/platforms/win32-x64-msvc/package.json
Normal file
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"name": "ruvector-core-win32-x64-msvc",
|
||||
"version": "0.1.25",
|
||||
"description": "Windows x64 MSVC native binding for ruvector-core - High-performance vector database with HNSW indexing built in Rust",
|
||||
"main": "index.js",
|
||||
"type": "commonjs",
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"author": "ruv.io Team <info@ruv.io> (https://ruv.io)",
|
||||
"homepage": "https://ruv.io",
|
||||
"engines": {
|
||||
"node": ">= 18"
|
||||
},
|
||||
"files": [
|
||||
"index.js",
|
||||
"ruvector.node",
|
||||
"*.node",
|
||||
"README.md"
|
||||
],
|
||||
"keywords": [
|
||||
"ruvector",
|
||||
"vector-database",
|
||||
"vector-search",
|
||||
"similarity-search",
|
||||
"semantic-search",
|
||||
"hnsw",
|
||||
"native",
|
||||
"napi",
|
||||
"rust",
|
||||
"windows",
|
||||
"win32",
|
||||
"x64",
|
||||
"msvc",
|
||||
"ai",
|
||||
"machine-learning",
|
||||
"embedding-database",
|
||||
"simd",
|
||||
"performance",
|
||||
"ruv"
|
||||
],
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/ruvnet/ruvector.git",
|
||||
"directory": "npm/core/platforms/win32-x64-msvc"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/ruvnet/ruvector/issues"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
}
|
||||
}
|
||||
BIN
npm/core/platforms/win32-x64-msvc/ruvector.node
Normal file
BIN
npm/core/platforms/win32-x64-msvc/ruvector.node
Normal file
Binary file not shown.
Reference in New Issue
Block a user