mirror of
https://github.com/ruvnet/RuVector.git
synced 2026-05-25 06:36:37 +00:00
docs: add new npm packages to README
- Move @ruvector/raft, @ruvector/replication, @ruvector/scipix from Planned to Published section with badges and download counts - Add new "Distributed Systems (Raft & Replication)" section with: - Crate table with badges - Feature highlights (consensus, vector clocks, conflict resolution) - TypeScript code example for both packages - Links to package documentation - Expand SciPix section with: - npm package reference alongside Rust crate - Feature list (multi-format, batch, content detection, PDF) - TypeScript client code example - Link to npm package README - Update package count from 40+ to 45+ Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
860549f100
commit
8f5b2bdb03
1 changed files with 94 additions and 17 deletions
111
README.md
111
README.md
|
|
@ -825,6 +825,51 @@ let scores = selector.select_and_apply(SelectionPolicy::Adaptive, &dag)?;
|
|||
|
||||
See [ruvector-dag README](./crates/ruvector-dag/README.md) for full documentation.
|
||||
|
||||
### Distributed Systems (Raft & Replication)
|
||||
|
||||
| Crate | Description | crates.io |
|
||||
|-------|-------------|-----------|
|
||||
| [ruvector-raft](./crates/ruvector-raft) | Raft consensus with leader election & log replication | [](https://crates.io/crates/ruvector-raft) |
|
||||
| [ruvector-replication](./crates/ruvector-replication) | Multi-master replication with vector clocks | [](https://crates.io/crates/ruvector-replication) |
|
||||
| [ruvector-cluster](./crates/ruvector-cluster) | Cluster coordination and sharding | [](https://crates.io/crates/ruvector-cluster) |
|
||||
|
||||
**Build distributed vector databases** with strong consistency guarantees:
|
||||
|
||||
- **Raft Consensus** — Leader election, log replication, automatic failover
|
||||
- **Vector Clocks** — Causal ordering for conflict detection
|
||||
- **Conflict Resolution** — Last-Write-Wins, custom merge functions, CRDT support
|
||||
- **Change Data Capture** — Stream changes to replicas in real-time
|
||||
- **Automatic Failover** — Promote replicas on primary failure
|
||||
|
||||
```typescript
|
||||
import { RaftNode, ReplicaSet, VectorClock } from '@ruvector/raft';
|
||||
import { ReplicationManager, ConflictStrategy } from '@ruvector/replication';
|
||||
|
||||
// Raft consensus cluster
|
||||
const node = new RaftNode({
|
||||
nodeId: 'node-1',
|
||||
peers: ['node-2', 'node-3'],
|
||||
electionTimeout: [150, 300],
|
||||
});
|
||||
|
||||
await node.start();
|
||||
const entry = await node.propose({ op: 'insert', vector: embedding });
|
||||
|
||||
// Multi-master replication
|
||||
const replicaSet = new ReplicaSet();
|
||||
replicaSet.addReplica('primary', 'localhost:5001', 'primary');
|
||||
replicaSet.addReplica('replica-1', 'localhost:5002', 'replica');
|
||||
|
||||
const manager = new ReplicationManager(replicaSet, {
|
||||
conflictStrategy: ConflictStrategy.LastWriteWins,
|
||||
syncMode: 'async',
|
||||
});
|
||||
|
||||
await manager.write('vectors', { id: 'v1', data: embedding });
|
||||
```
|
||||
|
||||
See [npm/packages/raft/README.md](./npm/packages/raft/README.md) and [npm/packages/replication/README.md](./npm/packages/replication/README.md) for full documentation.
|
||||
|
||||
### Standalone Vector Database (rvLite)
|
||||
|
||||
| Crate | Description | crates.io |
|
||||
|
|
@ -1714,17 +1759,52 @@ The PostgreSQL backend provides:
|
|||
<details>
|
||||
<summary>🔬 Scientific OCR (SciPix)</summary>
|
||||
|
||||
| Crate | Description | crates.io |
|
||||
|-------|-------------|-----------|
|
||||
| [ruvector-scipix](./examples/scipix) | OCR engine for scientific documents, math equations → LaTeX/MathML | [](https://crates.io/crates/ruvector-scipix) |
|
||||
| Package | Description | Install |
|
||||
|---------|-------------|---------|
|
||||
| [ruvector-scipix](./examples/scipix) | Rust OCR engine for scientific documents | `cargo add ruvector-scipix` |
|
||||
| [@ruvector/scipix](https://www.npmjs.com/package/@ruvector/scipix) | TypeScript client for SciPix API | `npm install @ruvector/scipix` |
|
||||
|
||||
**SciPix** extracts text and mathematical equations from images, converting them to LaTeX, MathML, or plain text. Features GPU-accelerated ONNX inference, SIMD-optimized preprocessing, REST API server, CLI tool, and MCP integration for AI assistants.
|
||||
**SciPix** extracts text and mathematical equations from images, converting them to LaTeX, MathML, or plain text.
|
||||
|
||||
**Features:**
|
||||
- **Multi-format output** — LaTeX, MathML, AsciiMath, plain text, structured JSON
|
||||
- **Batch processing** — Process multiple images with parallel execution
|
||||
- **Content detection** — Equations, tables, diagrams, mixed content
|
||||
- **Confidence scoring** — Per-region confidence levels (high/medium/low)
|
||||
- **PDF support** — Extract from multi-page PDFs with page selection
|
||||
|
||||
```typescript
|
||||
import { SciPixClient, OutputFormat } from '@ruvector/scipix';
|
||||
|
||||
const client = new SciPixClient({
|
||||
baseUrl: 'http://localhost:8080',
|
||||
apiKey: 'your-api-key',
|
||||
});
|
||||
|
||||
// OCR an image file
|
||||
const result = await client.ocrFile('./equation.png', {
|
||||
formats: [OutputFormat.LaTeX, OutputFormat.MathML],
|
||||
detectEquations: true,
|
||||
});
|
||||
|
||||
console.log('LaTeX:', result.latex);
|
||||
console.log('Confidence:', result.confidence);
|
||||
|
||||
// Quick LaTeX extraction
|
||||
const latex = await client.extractLatex('./math.png');
|
||||
|
||||
// Batch processing
|
||||
const batchResult = await client.batchOcr({
|
||||
images: [
|
||||
{ source: 'base64...', id: 'eq1' },
|
||||
{ source: 'base64...', id: 'eq2' },
|
||||
],
|
||||
defaultOptions: { formats: [OutputFormat.LaTeX] },
|
||||
});
|
||||
```
|
||||
|
||||
```bash
|
||||
# Install
|
||||
cargo add ruvector-scipix
|
||||
|
||||
# CLI usage
|
||||
# Rust CLI usage
|
||||
scipix-cli ocr --input equation.png --format latex
|
||||
scipix-cli serve --port 3000
|
||||
|
||||
|
|
@ -1733,6 +1813,8 @@ scipix-cli mcp
|
|||
claude mcp add scipix -- scipix-cli mcp
|
||||
```
|
||||
|
||||
See [npm/packages/scipix/README.md](./npm/packages/scipix/README.md) for full documentation.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
|
|
@ -2013,7 +2095,7 @@ await db.sync('https://api.example.com/vectors');
|
|||
</details>
|
||||
|
||||
<details>
|
||||
<summary>📦 npm Packages (40+ Packages)</summary>
|
||||
<summary>📦 npm Packages (45+ Packages)</summary>
|
||||
|
||||
#### ✅ Published
|
||||
|
||||
|
|
@ -2035,6 +2117,9 @@ await db.sync('https://api.example.com/vectors');
|
|||
| [@ruvector/rudag](https://www.npmjs.com/package/@ruvector/rudag) | Self-learning DAG | [](https://www.npmjs.com/package/@ruvector/rudag) | [](https://www.npmjs.com/package/@ruvector/rudag) |
|
||||
| [@ruvector/burst-scaling](https://www.npmjs.com/package/@ruvector/burst-scaling) | 10-50x burst scaling | [](https://www.npmjs.com/package/@ruvector/burst-scaling) | [](https://www.npmjs.com/package/@ruvector/burst-scaling) |
|
||||
| [@ruvector/spiking-neural](https://www.npmjs.com/package/@ruvector/spiking-neural) | Spiking neural networks | [](https://www.npmjs.com/package/@ruvector/spiking-neural) | [](https://www.npmjs.com/package/@ruvector/spiking-neural) |
|
||||
| [@ruvector/raft](https://www.npmjs.com/package/@ruvector/raft) | Raft consensus for distributed systems | [](https://www.npmjs.com/package/@ruvector/raft) | [](https://www.npmjs.com/package/@ruvector/raft) |
|
||||
| [@ruvector/replication](https://www.npmjs.com/package/@ruvector/replication) | Multi-master replication with vector clocks | [](https://www.npmjs.com/package/@ruvector/replication) | [](https://www.npmjs.com/package/@ruvector/replication) |
|
||||
| [@ruvector/scipix](https://www.npmjs.com/package/@ruvector/scipix) | Scientific OCR (LaTeX/MathML extraction) | [](https://www.npmjs.com/package/@ruvector/scipix) | [](https://www.npmjs.com/package/@ruvector/scipix) |
|
||||
|
||||
<details>
|
||||
<summary>WASM & Utility Packages</summary>
|
||||
|
|
@ -2062,14 +2147,6 @@ await db.sync('https://api.example.com/vectors');
|
|||
- `@ruvector/attention-linux-x64-gnu`, `@ruvector/attention-linux-arm64-gnu`, `@ruvector/attention-darwin-x64`, `@ruvector/attention-darwin-arm64`, `@ruvector/attention-win32-x64-msvc`
|
||||
- `@ruvector/ruvllm-linux-x64-gnu`, `@ruvector/ruvllm-linux-arm64-gnu`, `@ruvector/ruvllm-darwin-x64`, `@ruvector/ruvllm-darwin-arm64`, `@ruvector/ruvllm-win32-x64-msvc`
|
||||
|
||||
#### 🚧 Planned
|
||||
|
||||
| Package | Description | Status |
|
||||
|---------|-------------|--------|
|
||||
| @ruvector/raft | Raft consensus for distributed ops | Crate ready |
|
||||
| @ruvector/replication | Multi-master replication | Crate ready |
|
||||
| @ruvector/scipix | Scientific OCR (LaTeX/MathML) | Crate ready |
|
||||
|
||||
See [GitHub Issue #20](https://github.com/ruvnet/ruvector/issues/20) for multi-platform npm package roadmap.
|
||||
|
||||
```bash
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue