Contributing to LanceDB Typescript This document outlines the process for contributing to LanceDB Typescript. 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: Node.js 14 or later Rust's package manager, Cargo. Use rustup to install. 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