mirror of
https://github.com/lancedb/lancedb.git
synced 2025-12-25 06:19:57 +00:00
I've been noticing a lot of friction with the current toolchain for '/nodejs'. Particularly with the usage of eslint and prettier. [Biome](https://biomejs.dev/) is an all in one formatter & linter that replaces the need for two different ones that can potentially clash with one another. I've been using it in the [nodejs-polars](https://github.com/pola-rs/nodejs-polars) repo for quite some time & have found it much more pleasant to work with. --- One other small change included in this PR: use [ts-jest](https://www.npmjs.com/package/ts-jest) so we can run our tests without having to rebuild typescript code first
73 lines
1.7 KiB
Markdown
73 lines
1.7 KiB
Markdown
# LanceDB JavaScript SDK
|
|
|
|
A JavaScript library for [LanceDB](https://github.com/lancedb/lancedb).
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
npm install @lancedb/lancedb
|
|
```
|
|
|
|
This will download the appropriate native library for your platform. We currently
|
|
support:
|
|
|
|
- Linux (x86_64 and aarch64)
|
|
- MacOS (Intel and ARM/M1/M2)
|
|
- Windows (x86_64 only)
|
|
|
|
We do not yet support musl-based Linux (such as Alpine Linux) or aarch64 Windows.
|
|
|
|
## Usage
|
|
|
|
### Basic Example
|
|
|
|
```javascript
|
|
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](../basic.md) contains a more complete example.
|
|
|
|
## Development
|
|
|
|
```sh
|
|
npm run build
|
|
npm run test
|
|
```
|
|
|
|
### Running lint / format
|
|
|
|
LanceDb uses [biome](https://biomejs.dev/) for linting and formatting. if you are using VSCode you will need to install the official [Biome](https://marketplace.visualstudio.com/items?itemName=biomejs.biome) extension.
|
|
To manually lint your code you can run:
|
|
|
|
```sh
|
|
npm run lint
|
|
```
|
|
|
|
to automatically fix all fixable issues:
|
|
|
|
```sh
|
|
npm run lint-fix
|
|
```
|
|
|
|
If you do not have your workspace root set to the `nodejs` directory, unfortunately the extension will not work. You can still run the linting and formatting commands manually.
|
|
|
|
### Generating docs
|
|
|
|
```sh
|
|
npm run docs
|
|
|
|
cd ../docs
|
|
# Asssume the virtual environment was created
|
|
# python3 -m venv venv
|
|
# pip install -r requirements.txt
|
|
. ./venv/bin/activate
|
|
mkdocs build
|
|
```
|