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:
Or add it manually:
[]
= "0.1.5"
Run the Gateway
Build and run the gRPC service from this repository:
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 runtimemanager: default and named database managerengine: core LanceDB operationstypes: typed library input and output modelsffi: 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:
The platform-specific shared library is emitted under target/release.
Documentation
- English guide
- Chinese guide
- Library and FFI guide
- gRPC protobuf definition
- Go gRPC example
- Go FFI example
- API 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.