lance_namespace_impls/
lib.rs

1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright The Lance Authors
3
4//! Lance Namespace implementations.
5//!
6//! This crate provides various implementations of the Lance Namespace trait.
7//!
8//! ## Features
9//!
10//! - `rest`: REST API-based namespace implementation
11//! - `dir-aws`, `dir-azure`, `dir-gcp`, `dir-oss`: Cloud storage backend support for directory namespace (via lance-io)
12//!
13//! ## Implementations
14//!
15//! - `DirectoryNamespace`: Directory-based implementation (always available)
16//! - `RestNamespace`: REST API-based implementation (requires `rest` feature)
17//!
18//! ## Usage
19//!
20//! The recommended way to connect to a namespace is using [`ConnectBuilder`]:
21//!
22//! ```no_run
23//! # use lance_namespace_impls::ConnectBuilder;
24//! # async fn example() -> Result<(), Box<dyn std::error::Error>> {
25//! let namespace = ConnectBuilder::new("dir")
26//!     .property("root", "/path/to/data")
27//!     .connect()
28//!     .await?;
29//! # Ok(())
30//! # }
31//! ```
32
33pub mod connect;
34pub mod dir;
35
36#[cfg(feature = "rest")]
37pub mod rest;
38
39// Re-export connect builder
40pub use connect::ConnectBuilder;
41pub use dir::{DirectoryNamespace, DirectoryNamespaceBuilder};
42
43#[cfg(feature = "rest")]
44pub use rest::{RestNamespace, RestNamespaceBuilder};