feat(node): pull node binaries into separate packages (2) (#197)

* Refactors the Node module to load the shared library from a separate
package. When a user does `npm install vectordb`, the correct optional
dependency is automatically downloaded by npm.
* Add scripts and instructions to build Linux and MacOS node artifacts
locally.
* Add instructions for publishing the npm module and crates.

Co-authored-by: Will Jones <willjones127@gmail.com>
This commit is contained in:
gsilvestrin
2023-06-15 16:15:42 -07:00
committed by GitHub
parent cbb56e25ab
commit 0724d41c4b
11 changed files with 392 additions and 32 deletions

View File

@@ -8,6 +8,10 @@ A JavaScript / Node.js library for [LanceDB](https://github.com/lancedb/lancedb)
npm install vectordb
```
This will download the appropriate native library for your platform. We currently
support x86_64 Linux, aarch64 Linux, Intel MacOS, and ARM (M1/M2) MacOS. We do not
yet support Windows or musl-based Linux (such as Alpine Linux).
## Usage
### Basic Example
@@ -24,17 +28,33 @@ The [examples](./examples) folder contains complete examples.
## Development
The LanceDB javascript is built with npm:
To build everything fresh:
```bash
npm install
npm run tsc
npm run build
```
Then you should be able to run the tests with:
```bash
npm test
```
### Rebuilding Rust library
```bash
npm run build
```
### Rebuilding Typescript
```bash
npm run tsc
```
Run the tests with
```bash
npm test
```
### Fix lints
To run the linter and have it automatically fix all errors