Skip to main content

ailake_catalog/
lib.rs

1// SPDX-License-Identifier: MIT OR Apache-2.0
2//! ailake-catalog — Iceberg catalog operations
3//!
4//! Implements CatalogProvider for all supported backends.
5//! This is the only crate that reads/writes metadata.json and manifests.
6//!
7//! See docs/architecture/CATALOG_BACKENDS.md for backend details.
8
9pub mod avro_manifest;
10pub mod avro_raw;
11#[cfg(feature = "rest-catalog")]
12pub mod databricks;
13pub mod hadoop;
14pub mod metadata;
15pub mod provider;
16pub mod puffin;
17#[cfg(feature = "rest-catalog")]
18pub mod rest;
19pub mod schema_evolution;
20pub mod snapshot;
21
22#[cfg(feature = "catalog-glue")]
23pub mod glue;
24
25#[cfg(feature = "catalog-nessie")]
26pub mod nessie;
27
28#[cfg(feature = "catalog-jdbc")]
29pub mod jdbc;
30
31pub use avro_manifest::{
32    build_manifest_entry_schema, read_equality_delete_values, write_equality_delete_avro,
33    write_equality_delete_manifest, write_manifest_list_multi_typed, write_partition_stats_parquet,
34};
35#[cfg(feature = "rest-catalog")]
36pub use databricks::{databricks_aws, databricks_azure, databricks_gcp, DatabricksAuth};
37pub use hadoop::HadoopCatalog;
38pub use metadata::{BlobRef, IcebergPartitionStatsRef, IcebergStatisticsRef};
39pub use provider::{
40    decode_centroid, encode_centroid_b64, make_data_file_entry, make_data_file_entry_indexing,
41    make_multi_column_data_file_entry, new_snapshot_id, CatalogProvider, DataFileEntry,
42    EqualityDeleteFile, ExtraVectorIndex, IcebergSchemaUpdate, IndexStatus, NewSnapshot,
43    PartitionField, PartitionSpec, SchemaField, SnapshotId, SnapshotOperation, TableIdent,
44    TableMetadata, TableProperties, VectorIndexInfo,
45};
46pub use puffin::{
47    AilakePuffinReader, AilakePuffinWriter, BM25BloomEntry, VectorStatEntry, BLOB_TYPE_BM25_BLOOM,
48    BLOB_TYPE_VECTOR_STATS,
49};
50#[cfg(feature = "rest-catalog")]
51pub use rest::{RestCatalog, RestCatalogAuth, RestCatalogConfig};
52pub use schema_evolution::{AddColumnRequest, RenameColumnRequest, SchemaEvolution};
53
54#[cfg(feature = "catalog-glue")]
55pub use glue::{GlueCatalog, GlueCatalogConfig};
56
57#[cfg(feature = "catalog-nessie")]
58pub use nessie::{NessieBranch, NessieCatalog, NessieCatalogConfig};
59
60#[cfg(feature = "catalog-jdbc")]
61pub use jdbc::JdbcCatalog;