This document outlines the process for contributing to LanceDB Typescript. For general contribution guidelines, see CONTRIBUTING.md.
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 codelancedb/
: Typescript package source code__test__/
: Unit testsexamples/
: An npm package with the examples shown in the documentation
To set up your development environment, you will need to install the following:
- Node.js 14 or later
- Rust's package manager, Cargo. Use rustup to install.
- protoc (Protocol Buffers compiler)
Initial setup:
npm install
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
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