mirror of
https://github.com/lancedb/lancedb.git
synced 2026-11-13 14:16:54 +00:00
## Summary Adopts the product terminology guide across the docs site pages, SDK docstrings and error messages. "LanceDB OSS" and local mode become **LanceDB Embedded**. "Remote" as the execution model becomes **LanceDB Distributed**, which LanceDB Enterprise provides. Where free vs paid is the point, pages contrast "LanceDB Embedded (open source)" with "LanceDB Enterprise". This is a first trial of the Embedded name, so reviewers can judge it in context. - **Embedded vs Distributed** for where execution runs (`optimize()`, consistency, branching, maintenance). Main pages define it once: "LanceDB Enterprise runs LanceDB Distributed: …" - **LanceDB Cloud** is kept only for legacy-Cloud specifics (`db://` region, the brute-force KNN limit) and marked legacy. "Cloud and Enterprise" becomes Enterprise or Distributed. - **Plan executor** becomes "executor" or the fleet name. - **Error messages** change, e.g. `optimize is not supported for remote tables.` → `... in LanceDB Distributed.` Tests that match on them are updated. - **Vale rules** (`EmbeddedName`, `OSSProduct`, `RemoteExecution`, `DistributedEnterprise`, `LegacyCloud`, `InternalNames`) enforce the terms in prose. Unchanged: identifiers (`availability.oss`, the `remote` module and feature, `RemoteTable`, `db://`), heading anchors, internal code comments, and Geneva. ## Evidence - Rust lib tests for the changed messages and the Python tests in `test_remote_db.py`, `test_materialized_views.py` and `test_table.py` pass locally. - Not run locally: - The Node tests: `remote.test.ts` and `table.test.ts` have updated assertions. - Vale. - The `experimental_functions`-marked materialized-view tests. - `docs/src` API reference was hand-edited to match the docstrings rather than regenerated. ## Merge Risk **Door:** two-way; prose and message text only. **Blast Radius:** `docs`, `error-messages`: callers matching on old error strings would break. Companion PRs: lancedb/docs (assembler labels, STYLE.md) and sophon (Enterprise pages). 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
123 lines
4.8 KiB
Rust
123 lines
4.8 KiB
Rust
// SPDX-License-Identifier: Apache-2.0
|
|
// SPDX-FileCopyrightText: Copyright The LanceDB Authors
|
|
|
|
// The materialized-view refresh future deepens the type graph past the
|
|
// default trait-recursion depth; same raise as the core crate applies.
|
|
#![recursion_limit = "256"]
|
|
|
|
use std::collections::HashMap;
|
|
|
|
use env_logger::Env;
|
|
use napi_derive::*;
|
|
|
|
mod blob;
|
|
mod catalog;
|
|
mod connection;
|
|
mod error;
|
|
mod expr;
|
|
mod header;
|
|
mod index;
|
|
mod iterator;
|
|
mod job;
|
|
mod listing;
|
|
pub mod merge;
|
|
pub mod otel;
|
|
pub mod permutation;
|
|
mod query;
|
|
pub mod remote;
|
|
mod rerankers;
|
|
mod scannable;
|
|
mod session;
|
|
mod table;
|
|
mod util;
|
|
|
|
/// Whether this native binding was built with local experimental Functions.
|
|
#[napi]
|
|
pub fn experimental_functions_enabled() -> bool {
|
|
cfg!(feature = "experimental-functions")
|
|
}
|
|
|
|
#[napi(object)]
|
|
#[derive(Debug)]
|
|
pub struct ConnectionOptions {
|
|
/// The interval, in seconds, at which to check for updates to the table
|
|
/// from other processes. If None, then consistency is not checked. For
|
|
/// performance reasons, this is the default. For strong consistency, set
|
|
/// this to zero seconds. Then every read will check for updates from other
|
|
/// processes. As a compromise, you can set this to a non-zero value for
|
|
/// eventual consistency. If more than that interval has passed since the
|
|
/// last check, then the table will be checked for updates. Note: this
|
|
/// consistency only applies to read operations. Write operations are
|
|
/// always consistent.
|
|
///
|
|
/// Stronger consistency is not free. The smaller the interval, the more
|
|
/// often each read pays the cost of checking for updates against object
|
|
/// storage, raising per-read latency and cost.
|
|
pub read_consistency_interval: Option<f64>,
|
|
/// (For LanceDB Embedded only): configuration for object storage.
|
|
///
|
|
/// The available options are described at https://docs.lancedb.com/storage/
|
|
pub storage_options: Option<HashMap<String, String>>,
|
|
/// (For LanceDB Embedded only): use directory namespace manifests as the source
|
|
/// of truth for table metadata. Existing directory-listed root tables are
|
|
/// migrated into the manifest on access.
|
|
pub manifest_enabled: Option<bool>,
|
|
/// (For LanceDB Embedded only): extra properties for the backing namespace
|
|
/// client used by manifest-enabled native connections.
|
|
pub namespace_client_properties: Option<HashMap<String, String>>,
|
|
/// (For LanceDB Embedded only): the session to use for this connection. Holds
|
|
/// shared caches and other session-specific state.
|
|
pub session: Option<session::Session>,
|
|
|
|
/// (For LanceDB Enterprise or LanceDB Cloud only): configuration for the HTTP client.
|
|
pub client_config: Option<remote::ClientConfig>,
|
|
/// (For LanceDB Enterprise or LanceDB Cloud only): the API key to use.
|
|
///
|
|
/// Can also be set via the environment variable `LANCEDB_API_KEY`.
|
|
pub api_key: Option<String>,
|
|
/// (For LanceDB Cloud only): the region to use for LanceDB Cloud (legacy).
|
|
/// Defaults to 'us-east-1'.
|
|
pub region: Option<String>,
|
|
/// (For LanceDB Enterprise only): the host of the LanceDB Enterprise
|
|
/// deployment to connect to.
|
|
pub host_override: Option<String>,
|
|
/// (For LanceDB Enterprise only): OAuth configuration for IdP-based
|
|
/// authentication (e.g., Azure Entra ID). When set, token acquisition
|
|
/// and refresh are handled entirely in Rust. TypeScript users should pass
|
|
/// the public `OAuthConfig` type exported from `@lancedb/lancedb`.
|
|
pub oauth_config: Option<remote::OAuthConfig>,
|
|
}
|
|
|
|
#[napi(object)]
|
|
pub struct OpenTableOptions {
|
|
pub storage_options: Option<HashMap<String, String>>,
|
|
}
|
|
|
|
#[napi(object)]
|
|
#[derive(Debug)]
|
|
pub struct ConnectNamespaceOptions {
|
|
/// The interval, in seconds, at which to check for updates to the table
|
|
/// from other processes. If None, then consistency is not checked. For
|
|
/// performance reasons, this is the default. For strong consistency, set
|
|
/// this to zero seconds. Then every read will check for updates from other
|
|
/// processes. As a compromise, you can set this to a non-zero value for
|
|
/// eventual consistency.
|
|
pub read_consistency_interval: Option<f64>,
|
|
/// Configuration for object storage. The available options are described
|
|
/// at https://docs.lancedb.com/storage/
|
|
pub storage_options: Option<HashMap<String, String>>,
|
|
/// Extra properties for the backing namespace client.
|
|
pub namespace_client_properties: Option<HashMap<String, String>>,
|
|
/// The session to use for this connection. Holds shared caches and other
|
|
/// session-specific state.
|
|
pub session: Option<session::Session>,
|
|
}
|
|
|
|
#[napi_derive::module_init]
|
|
fn init() {
|
|
let env = Env::new()
|
|
.filter_or("LANCEDB_LOG", "warn")
|
|
.write_style("LANCEDB_LOG_STYLE");
|
|
env_logger::init_from_env(env);
|
|
}
|