diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 00000000..a9ca6f3a --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,24 @@ +LanceDB is a database designed for retrieval, including vector, full-text, and hybrid search. +It is a wrapper around Lance. There are two backends: local (in-process like SQLite) and +remote (against LanceDB Cloud). + +The core of LanceDB is written in Rust. There are bindings in Python, Typescript, and Java. + +Project layout: + +* `rust/lancedb`: The LanceDB core Rust implementation. +* `python`: The Python bindings, using PyO3. +* `nodejs`: The Typescript bindings, using napi-rs +* `java`: The Java bindings + +(`rust/ffi` and `node/` are for a deprecated package. You can ignore them.) + +Common commands: + +* Check for compiler errors: `cargo check --features remote --tests --examples` +* Run tests: `cargo test --features remote --tests` +* Run specific test: `cargo test --features remote -p --test ` +* Lint: `cargo clippy --features remote --tests --examples` +* Format: `cargo fmt --all` + +Before committing changes, run formatting. diff --git a/nodejs/CLAUDE.md b/nodejs/CLAUDE.md new file mode 100644 index 00000000..541a8559 --- /dev/null +++ b/nodejs/CLAUDE.md @@ -0,0 +1,13 @@ +These are the typescript bindings of LanceDB. +The core Rust library is in the `../rust/lancedb` directory, the rust binding +code is in the `src/` directory and the typescript bindings are in +the `lancedb/` directory. + +Whenever you change the Rust code, you will need to recompile: `npm run build`. + +Common commands: +* Build: `npm run build` +* Lint: `npm run lint` +* Fix lints: `npm run lint-fix` +* Test: `npm test` +* Run single test file: `npm test __test__/arrow.test.ts` diff --git a/python/CLAUDE.md b/python/CLAUDE.md new file mode 100644 index 00000000..07d78211 --- /dev/null +++ b/python/CLAUDE.md @@ -0,0 +1,16 @@ +These are the Python bindings of LanceDB. +The core Rust library is in the `../rust/lancedb` directory, the rust binding +code is in the `src/` directory and the Python bindings are in the `lancedb/` directory. + +Common commands: + +* Build: `make develop` +* Format: `make format` +* Lint: `make check` +* Fix lints: `make fix` +* Test: `make test` +* Doc test: `make doctest` + +Before committing changes, run lints and then formatting. + +When you change the Rust code, you will need to recompile the Python bindings: `make develop`.