Zvec Logo

Announcing Zvec v0.3.0

TL;DR: We are releasing Zvec v0.3.0, introducing official Windows support and stable SDKs for Python, Node.js, and C. This release also integrates the RabitQ quantization algorithm, enabling efficient vector search with significantly reduced memory usage.

You can find the complete release notes on GitHub.

Platform Expansion: Zvec Arrives on Windows

We are thrilled to announce that Zvec v0.3.0 brings native support for Windows, making our high-performance vector search accessible to a broader range of developers and enterprise environments.

To ensure a seamless experience across all major operating systems, we have released stable, official SDKs for Python, Node.js, and C, now fully supported on macOS, Linux, and Windows.

C API

We are pleased to introduce the C API in Zvec v0.3.0. It makes Zvec easier to integrate into a wider range of applications and helps the community build and share bindings for other programming languages.

Example
zvec_vector_query_set_field_name(query, "embedding");
zvec_vector_query_set_query_vector(query, vector1, 3 * sizeof(float));
zvec_vector_query_set_topk(query, 10);

zvec_doc_t **results = NULL;
size_t result_count = 0;
error = zvec_collection_query(collection, (const zvec_vector_query_t *)query,
                                &results, &result_count);

printf("✓ Query successful - Returned %zu results\n", result_count);

RabitQ Quantization

The RabitQ algorithm has been integrated into Zvec, a breakthrough in vector quantization that delivers high recall with a significantly reduced memory footprint. For more details, please refer to the documentation.

Getting started is simple. You can enable RabitQ like this:

Create an HNSW-RabitQ Index
import zvec

collection_schema = zvec.CollectionSchema(
    name="example_collection",
    vectors=zvec.VectorSchema(
        name="vector",
        data_type=zvec.DataType.VECTOR_FP32,
        dimension=512,
        # Use HNSW-RabitQ index for similarity search with cosine distance metric
        index_param=zvec.HnswRabitqIndexParam(metric_type=zvec.MetricType.COSINE),
    ),
)

collection = zvec.create_and_open(path="./example_collection", schema=collection_schema)

And query it just like any other index:

Vector Search
result = collection.query(
    vectors=zvec.VectorQuery(
        field_name="vector",
        vector=[0.1] * 768,
        param=zvec.HnswRabitqQueryParam(ef=300),  
    ),
    topk=10,
)

AI Integration (Skills/MCP)

To bridge the gap between vector search and AI application development, Zvec v0.3.0 introduces official support for Agent Skills and the MCP (Model Context Protocol) Server.

This integration allows LLM agents to directly interact with Zvec for semantic search and data management, enabling the creation of intelligent agents that can query and manipulate vector data using natural language.

Improvements & Fixes

  • Performance: Boosted batch calculation performance for Inner Product (IP) and L2 metrics on x86 platforms.
  • Stability
    • Refined CPU detection and SIMD dispatch logic to prevent illegal instruction errors on older hardware.
    • Fixed bugs affecting collection recovery after unexpected environment crashes.

Roadmap

For a glimpse into our future plans and upcoming features, please visit our official roadmap.