mirror of
https://github.com/ruvnet/RuVector.git
synced 2026-05-23 04:27:11 +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
35 lines
798 B
JavaScript
35 lines
798 B
JavaScript
const { VectorDB } = require('./index.js');
|
|
|
|
async function test() {
|
|
console.log('Testing native module...');
|
|
|
|
try {
|
|
// Create database
|
|
const db = VectorDB.withDimensions(128);
|
|
console.log('✓ Created database');
|
|
|
|
// Insert vector
|
|
const id = await db.insert({
|
|
vector: new Float32Array(128).fill(0.5)
|
|
});
|
|
console.log('✓ Inserted vector:', id);
|
|
|
|
// Search
|
|
const results = await db.search({
|
|
vector: new Float32Array(128).fill(0.5),
|
|
k: 1
|
|
});
|
|
console.log('✓ Search results:', results);
|
|
|
|
// Check length
|
|
const len = await db.len();
|
|
console.log('✓ Database length:', len);
|
|
|
|
console.log('\n✅ All tests passed!');
|
|
} catch (error) {
|
|
console.error('❌ Test failed:', error);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
test();
|