Files
lancedb/nodejs
Dan TasseandClaude Fable 5.1 590f7a4eca fix(node): rebuild view columns as Utf8/Binary before IPC serialization
Arrow JS 21's IPC writer emits a truncated views buffer for a sliced
Utf8View or BinaryView array, which the Rust reader rejects ("Need at
least N bytes in buffers[0]"), so createTable and add failed for any view
column with a nonzero data offset. Lance stores the view types as Utf8 and
Binary anyway, so rebuild top-level view columns that way on the JS side
before writing the IPC bytes. Covers the table and record batch paths.

Also take the Type enum from the Arrow 21 copy in the end-to-end test so
the file still type-checks when the library resolves to Arrow 19 or 20.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-01 12:28:35 -05:00
..
2025-03-21 10:56:29 -07:00
2025-01-29 08:27:07 -08:00

LanceDB JavaScript SDK

A JavaScript library for LanceDB.

Installation

npm install @lancedb/lancedb

This will download the appropriate native library for your platform. We currently support:

  • Linux (x86_64 and aarch64 on glibc and musl)
  • MacOS (Intel and ARM/M1/M2)
  • Windows (x86_64 and aarch64)

Usage

Basic Example

import * as lancedb from "@lancedb/lancedb";
const db = await lancedb.connect("data/sample-lancedb");
const table = await db.createTable("my_table", [
  { id: 1, vector: [0.1, 1.0], item: "foo", price: 10.0 },
  { id: 2, vector: [3.9, 0.5], item: "bar", price: 20.0 },
]);
const results = await table.vectorSearch([0.1, 0.3]).limit(20).toArray();
console.log(results);

The quickstart contains more complete examples.

Development

See CONTRIBUTING.md for information on how to contribute to LanceDB.