vldb-lancedb 0.1.5

A Rust gRPC, library, and FFI gateway for LanceDB vector data with JSON and Arrow IPC support.
Documentation

vldb-lancedb

vldb-lancedb is a Rust LanceDB vector data gateway that can be used as a gRPC service, an embeddable Rust library, or a C-compatible FFI dynamic library. It is part of the OpenVulcan local data gateway stack and focuses on multi-language access to local vector storage.

The crate provides table creation, vector upsert, vector search, delete, and drop-table operations with JSON Rows and Arrow IPC payload support.

Features

  • LanceDB gRPC gateway built with tonic
  • Embeddable Rust library API for local vector workloads
  • C ABI / FFI exports for Go, C, Lua, and other native runtimes
  • JSON Rows and Arrow IPC input support
  • JSON Rows and Arrow IPC search output support
  • Per-table concurrency coordination
  • Request timeout, payload limit, and concurrency limit controls
  • Multi-database runtime support for local gateway hosts

Installation

Add the crate to a Rust project:

cargo add vldb-lancedb

Or add it manually:

[dependencies]
vldb-lancedb = "0.1.5"

Run the Gateway

Build and run the gRPC service from this repository:

cargo run --release -- --config ./vldb-lancedb.json

The default gRPC endpoint is:

127.0.0.1:19301

Use vldb-lancedb.json.example as the starting point for a custom service configuration.

Rust Library Usage

The library mode exposes the same LanceDB execution core used by the gRPC service. Typical callers create a runtime, open the default or a named database engine, and then call the typed create/upsert/search/delete/drop operations.

Important modules:

  • runtime: embedded LanceDB runtime
  • manager: default and named database manager
  • engine: core LanceDB operations
  • types: typed library input and output models
  • ffi: exported FFI symbols and FFI-safe types

FFI Usage

The crate also builds a cdylib and ships the C header in include/vldb_lancedb.h. Native hosts should prefer the non-JSON FFI entry points for hot vector upsert/search paths and keep JSON FFI calls for compatibility, scripting, and diagnostics.

Build the dynamic library:

cargo build --release

The platform-specific shared library is emitted under target/release.

Documentation

Package Contents

The crates.io package intentionally includes only the files required for Rust builds, generated documentation, protobuf compilation, FFI headers, and user-facing crate documentation. CI, Docker packaging, local runtime data, and release automation files are kept out of the published crate.

License

This project is licensed under the MIT License. See LICENSE.