mirror of
https://github.com/ruvnet/RuVector.git
synced 2026-05-30 12:13:34 +00:00
Phase 2: Multi-Platform Native Builds This commit adds comprehensive GitHub Actions CI/CD for building native NAPI modules across all major platforms: ✨ Features: - GitHub Actions workflow with 5-platform matrix build: - Linux (x64, ARM64) - macOS (x64 Intel, ARM64 Apple Silicon) - Windows (x64) - Parallel builds complete in 7-10 minutes - Automated artifact uploads and publishing - Platform-specific npm packages with smart detection 📦 Package Structure: - @ruvector/core - Main package with platform detection - @ruvector/core-{platform} - Platform-specific binaries - Smart loader with automatic platform selection - Optional dependencies ensure minimal install size 🔧 Developer Tools: - scripts/publish-platforms.js - Automated publishing - Comprehensive TypeScript definitions - Smoke tests for each platform - Local build support with napi build 📚 Documentation: - docs/BUILD_PROCESS.md - Complete build guide - docs/PHASE2_MULTIPLATFORM_COMPLETE.md - Phase summary - README for @ruvector/core package - Troubleshooting and cross-compilation guides 🚀 Publishing Workflow: 1. Tag release (git tag v0.1.1) 2. Push to GitHub 3. CI builds all platforms 4. Publishes platform packages 5. Publishes main packages Next: Phase 3 - WASM support with architectural refactoring 🤖 Generated with Claude Code
26 lines
639 B
TypeScript
26 lines
639 B
TypeScript
export interface VectorEntry {
|
|
id?: string;
|
|
vector: Float32Array | number[];
|
|
}
|
|
|
|
export interface SearchQuery {
|
|
vector: Float32Array | number[];
|
|
k: number;
|
|
efSearch?: number;
|
|
}
|
|
|
|
export interface SearchResult {
|
|
id: string;
|
|
score: number;
|
|
}
|
|
|
|
export class VectorDB {
|
|
static withDimensions(dimensions: number): VectorDB;
|
|
insert(entry: VectorEntry): Promise<string>;
|
|
insertBatch(entries: VectorEntry[]): Promise<string[]>;
|
|
search(query: SearchQuery): Promise<SearchResult[]>;
|
|
delete(id: string): Promise<boolean>;
|
|
get(id: string): Promise<VectorEntry | null>;
|
|
len(): Promise<number>;
|
|
isEmpty(): Promise<boolean>;
|
|
}
|