Squashed 'vendor/ruvector/' content from commit b64c2172

git-subtree-dir: vendor/ruvector
git-subtree-split: b64c21726f2bb37286d9ee36a7869fef60cc6900
This commit is contained in:
ruv
2026-02-28 14:39:40 -05:00
commit d803bfe2b1
7854 changed files with 3522914 additions and 0 deletions

View File

@@ -0,0 +1,135 @@
# ruvector-core-linux-arm64-gnu
[![npm version](https://badge.fury.io/js/ruvector-core-linux-arm64-gnu.svg)](https://www.npmjs.com/package/ruvector-core-linux-arm64-gnu)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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

View 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;

View 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"
}
}

Binary file not shown.