Skip to content

Contributing to Lance Namespace

Repository structure

Component Language Path Description
spec docs/src/spec Lance Namespace Specification
Rust Reqwest Client Rust rust/lance-namespace-reqwest-client Generated Rust reqwest client for Lance REST Namespace
Python UrlLib3 Client Python python/lance_namespace_urllib3_client Generated Python urllib3 client for Lance REST Namespace
Python Lance Namespace Core Python python/lance_namespace Lance Namespace Python Core SDK
Java Apache Client Java java/lance-namespace-apache-client Generated Java Apache HTTP client for Lance REST Namespace
Java Springboot Server Java java/lance-namespace-springboot-server Generated Java SpringBoot server for Lance REST Namespace
Java Lance Namespace Core Java java/lance-namespace-core Lance Namespace Java Core SDK
Java Lance Namespace Adapter Java java/lance-namespace-adaptor Lance Namespace adapter server implementation
Java Lance Namespace Hive Java java/lance-namespace-hive Java Lance Namespace Apache Hive Metastore Implementation
Java Lance Namespace Glue Java java/lance-namespace-glue Java Lance Namespace AWS Glue Data Catalog Implementation
Java Lance Namespace LanceDB Java java/lance-namespace-lancedb Java Utilities to use Lance Namespace SDK with LanceDB Cloud & Enterprise

Install uv

We use uv for development. Make sure it is installed, and run:

uv sync --all-packages

Lint

To ensure the OpenAPI definition is valid, you can use the lint command to check it.

make lint

Build

There are 3 commands that is available at top level as well as inside each language folder:

  • make clean: remove all codegen modules
  • make gen: codegen and lint all modules (depends on clean)
  • make build: build all modules (depends on gen)

You can also run make <command>-<language> to only run the command in the specific language, for example:

  • make gen-python: codegen and lint all Python modules
  • make build-rust: build all Rust modules

You can also run make <command>-<language>-<module> inside a language folder to run the command against a specific module, for example:

  • make gen-rust-reqwest-client: codegen and lint the Rust reqwest client module
  • make build-java-springboot-server: build the Java Spring Boot server module

Documentation

Setup

The documentation website is built using mkdocs-material. Start the server with:

make serve-docs

Generated Doc from OpenAPI Spec

The OpenAPI spec at docs/src/rest.yaml is digested and generated as Markdown documents for better readability. Generate the latest documents with:

make gen-docs

Understanding the Build Process

The contents in the lance-namespace repo are for the ease of contributors to edit and preview. After code merge, the contents are added to the main Lance documentation during the Lance doc CI build time, and is presented in the Lance website under Apache Spark integration.