Skip to main content

lance_graph_catalog/
lib.rs

1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright The Lance Authors
3
4//! Catalog and namespace utilities for Lance Graph.
5//!
6//! This crate provides the SPI (Service Provider Interface) layer for external
7//! catalog integration, inspired by Presto's connector architecture:
8//!
9//! - [`CatalogProvider`] — browse catalog metadata (analogous to `ConnectorMetadata`)
10//! - [`TableReader`] — read table data in specific formats (analogous to `ConnectorPageSourceProvider`)
11//! - [`Connector`] — bundles catalog + readers (analogous to Presto's `Connector`)
12
13pub mod catalog_provider;
14pub mod connector;
15pub mod namespace;
16pub mod source_catalog;
17pub mod table_reader;
18pub mod type_mapping;
19#[cfg(feature = "unity-catalog")]
20pub mod unity_catalog;
21
22// Existing exports
23pub use namespace::DirNamespace;
24pub use source_catalog::{GraphSourceCatalog, InMemoryCatalog, SimpleTableSource};
25
26// Catalog provider exports
27pub use catalog_provider::{
28    CatalogError, CatalogInfo, CatalogProvider, CatalogResult, ColumnInfo, DataSourceFormat,
29    SchemaInfo, TableInfo, TableType,
30};
31pub use connector::Connector;
32pub use table_reader::TableReader;
33pub use type_mapping::columns_to_arrow_schema;
34
35#[cfg(feature = "unity-catalog")]
36pub use unity_catalog::{UnityCatalogConfig, UnityCatalogProvider};