unitycatalog_common/lib.rs
1//! Shared types and utilities for the Unity Catalog server and client crates.
2//!
3//! Most of the crate is the generated Unity Catalog data model, produced from the
4//! protobuf definitions in `proto/` and re-exported from [`models`]. On top of that
5//! it collects the hand-written pieces both sides of the API depend on:
6//!
7//! - [`error`] — the crate-wide [`Error`] and [`Result`] types.
8//! - [`reference`](mod@reference) — the `uc://` URL scheme for addressing catalog
9//! securables ([`UCReference`]).
10//! - [`store`] — the storage-abstraction trait ([`ResourceStore`](store::ResourceStore))
11//! implemented by backends (feature `store`).
12//! - [`services`] — envelope encryption for sealing sensitive fields inline
13//! (feature `store`).
14//! - [`credentials_ext`] — conversions to the `olai-storage-credentials` /
15//! `olai-credential-vending` types (features `credentials`, `credential-vending`).
16//! - [`metric_view`] — the single parser for Unity Catalog metric-view definitions
17//! (feature `metric-view`).
18//!
19//! # Feature flags
20//!
21//! The crate is feature-flag heavy so that downstream crates pull in only what they
22//! need. `rest-client` is on by default; `grpc`, `axum`, `sqlx`, `store`,
23//! `metric-view`, `python`, and `node` gate the corresponding integrations. See the
24//! crate README for the full table.
25
26pub use error::{Error, Result};
27pub use models::*;
28pub use reference::UCReference;
29
30#[cfg(feature = "credentials")]
31pub mod credentials_ext;
32pub mod error;
33#[cfg(feature = "metric-view")]
34pub mod metric_view;
35pub mod models;
36pub mod reference;
37#[cfg(feature = "store")]
38pub mod services;
39#[cfg(feature = "store")]
40pub mod store;