Skip to content

This documentation site is deprecated. Please visit our new documentation site at lancedb.com/docs for the latest information.

Contributing to LanceDB Typescript

This document outlines the process for contributing to LanceDB Typescript. For general contribution guidelines, see CONTRIBUTING.md.

Project layout

The Typescript package is a wrapper around the Rust library, lancedb. We use the napi-rs library to create the bindings between Rust and Typescript.

  • src/: Rust bindings source code
  • lancedb/: Typescript package source code
  • __test__/: Unit tests
  • examples/: An npm package with the examples shown in the documentation

Development environment

To set up your development environment, you will need to install the following:

  1. Node.js 14 or later
  2. Rust's package manager, Cargo. Use rustup to install.
  3. protoc (Protocol Buffers compiler)

Initial setup:

npm install

Commit Hooks

It is highly recommended to install the pre-commit hooks to ensure that your code is formatted correctly and passes basic checks before committing:

pre-commit install

Development

Most common development commands can be run using the npm scripts.

Build the package

npm install
npm run build

Lint:

npm run lint

Format and fix lints:

npm run lint-fix

Run tests:

npm test

To run a single test:

# Single file: table.test.ts
npm test -- table.test.ts
# Single test: 'merge insert' in table.test.ts
npm test -- table.test.ts --testNamePattern=merge\ insert