Skip to content

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