npm.io
0.6.0 • Published 9h ago

@zvec/zvec

Licence
Apache-2.0
Version
0.6.0
Deps
1
Size
62 kB
Vulns
0
Weekly
0
Stars
11
Install scriptsThis package runs scripts during installation (preinstall/install/postinstall)
zvec logo

Build Status License npm Release

Quickstart | Home | Docs | Benchmarks | DeepWiki | Discord | X (Twitter)

The official Node.js binding for Zvec, an open-source, in-process vector database that is lightweight, lightning-fast, and designed to embed directly into applications. Battle-tested within Alibaba Group, it delivers production-grade, low-latency and scalable similarity search with minimal setup.

Features

  • Blazing Fast: Searches billions of vectors in milliseconds.
  • Simple, Just Works: Install with npm and start searching in seconds. Pure local, no servers, no config, no fuss.
  • Dense + Sparse Vectors: Support dense and sparse embeddings, multi-vector queries, and a rich selection of vector index types that scale from memory to disk.
  • Full-Text Search (FTS): Native keyword-based full-text search — query string fields with natural-language or structured expressions.
  • Hybrid Search: Fuse vector similarity, full-text search, and structured filters in a single query for precise results.
  • Durable Storage: Write-ahead logging (WAL) guarantees persistence — data is never lost, even on process crash or power failure.
  • Concurrent Access: Multiple processes can read the same collection simultaneously; writes are single-process exclusive.
  • Runs Anywhere: As an in-process library, Zvec runs wherever your code runs — notebooks, servers, CLI tools, or even edge devices.

Installation

npm install @zvec/zvec
Supported Platforms
  • Linux (x86_64, ARM64)
  • macOS (ARM64)
  • Windows (x86_64)
Building from Source

If you prefer to build Zvec from source, please check the Building from Source guide.

One-Minute Example

import { ZVecCreateAndOpen, ZVecCollectionSchema, ZVecDataType } from "@zvec/zvec";

// Define collection schema
const schema = new ZVecCollectionSchema({
  name: "example",
  vectors: { name: "embedding", dataType: ZVecDataType.VECTOR_FP32, dimension: 4 },
});

// Create collection
const collection = ZVecCreateAndOpen("./zvec_example", schema);

// Insert documents
collection.insertSync([
  { id: "doc_1", vectors: { embedding: [0.1, 0.2, 0.3, 0.4] } },
  { id: "doc_2", vectors: { embedding: [0.2, 0.3, 0.4, 0.1] } },
]);

// Search by vector similarity
const results = collection.querySync({
  fieldName: "embedding",
  vector: [0.4, 0.3, 0.3, 0.1],
  topk: 10,
});

// Results: array of { id, score, vectors, fields }, sorted by relevance
console.log(results);

Performance at Scale

Zvec delivers exceptional speed and efficiency, making it ideal for demanding production workloads.

Zvec Performance Benchmarks

For detailed benchmark methodology, configurations, and complete results, see the Benchmarks documentation.

Contributing

We welcome and appreciate contributions from the community! Whether you're fixing a bug, adding a feature, or improving documentation, your help makes Zvec better for everyone.

Check out our Contributing Guide to get started.

Keywords