Skip to content

SDK ​

选一门语言的 LanceDB SDK,并找到对应的 API 参考。

用 LanceDB SDK,你就能在应用里建表、写入数据、构建索引并执行检索。Python、TypeScript 与 Rust 三种 SDK 同时支持 LanceDB Embedded 与 LanceDB Enterprise。LanceDB Embedded 跑在你的应用进程里,数据可以落在本地磁盘或对象存储;LanceDB Enterprise 则把查询执行、索引、维护与刷新这些工作分散到应用之外的服务里完成。

快速开始里有三种语言的安装说明与完整示例。连接配置见连接 LanceDB。

官方 SDK ​

SDKAPI 参考
PythonPython 参考
TypeScriptTypeScript 参考
RustRust 参考

指南会把各语言的示例并列展示。方法签名和参数请查 API 参考——不同 SDK 并不会用同名方法暴露全部特性。在 Rust 里要连 Enterprise,需要开启 remote feature。

SQL 连接、聚合与窗口函数请用 SQL。Python 自带一个 SQL 客户端,其他语言的应用可以用 Flight SQL 客户端。TypeScript 的表查询 API 不提供执行 SQL 的方法。

Lance Namespace SDK ​

LanceDB Enterprise 的 catalog 与表操作遵循 Lance Namespace Client SDK 规范——一份描述如何访问多模态 Lakehouse 中表的开放规范。任何实现了该规范的客户端都能以这种方式对接 LanceDB,不限于上面的官方 SDK,这对那些还没有 LanceDB SDK 的语言或工具很有用。SQL 查询请改走 Flight SQL。

语言包使用者
Javaorg.lance:lance-namespace-coreSpark、Flink、Kafka、Trino、Presto;以及 LanceDB 的 Java 客户端
Pythonlance-namespace核心接口与连接能力
Rustlance-namespace核心接口,位于 lance-format/lance

LanceDB 的 Java 客户端就构建在这个 Lance Namespace Java 核心之上:建表、列表以及大多数 catalog 操作,都通过生成的 LanceNamespace 接口去访问 Enterprise 的 Namespace endpoint。 唯一的例外是实时引擎:因为 RTE 的 LSM 写入路径不属于 Lance Namespace Client SDK 规范,它在这一层之上有自己的 LanceDB 专用 Java 客户端。

完整规范以及它支持的其他 catalog 实现(Directory、Apache Polaris、Unity Catalog、Apache Hive Metastore、Apache Iceberg REST Catalog 等)见 lance.org/format/namespace。

社区 SDK ​

下面这些客户端由社区维护。选择之前,请先确认各项目支持的特性、安装方式与发布状态。

语言项目
Golancedb-go
RubyLancelot
SwiftLanceDbSwiftKit
Rlancedb
Flutterflutter_lancedb

相关指南 ​

SQL用 Python 或 Flight SQL 客户端以 SQL 查询 Enterprise 表。PyTorch 数据加载器在 DataLoader 中使用 LanceDB 表,包括多 worker 进程的场景。Agentic Skills用 LanceDB 插件帮编码智能体处理你的数据。