olai-uc-server 0.0.2

Unity Catalog REST and gRPC server with pluggable storage backends.
Documentation

olai-uc-server

Unity Catalog REST and gRPC server with pluggable storage backends — a deployable catalog service and the library it is built from.

[!NOTE] The Rust crate identifier is unitycatalog_server (imports and paths use that name); the crate is published to crates.io as olai-uc-server while the naming settles. This is an experimental component of an unofficial Unity Catalog implementation.

This crate is two things at once:

  • A library (unitycatalog_server) providing the Unity Catalog REST/gRPC handlers, routing, storage services, and the reusable handler patterns (in-memory backend, proxy/federation connectors) that a custom deployment can build on.
  • A deployable binary, uc-server (gated behind the bin feature), with serve / migrate / healthcheck subcommands. This is the same binary that ships as the mangrove Docker image (ghcr.io/open-lakehouse/mangrove) with the web UI bundled in.

The uc-server binary is distinct from the uc client CLI (crate olai-uc-cli): uc-server runs a catalog, uc talks to one.

Install the server binary

The binary is gated behind the bin feature (off by default, so library consumers don't pull the serve/store/CLI stack), so enable it when installing:

cargo install olai-uc-server --features bin

This installs uc-server:

uc-server serve            # run the catalog server (REST + gRPC + bundled UI)
uc-server migrate          # run database migrations
uc-server healthcheck      # probe /health (used by the Docker HEALTHCHECK)

serve loads a YAML config file (also UC_SERVER_CONFIG), overlaid by CLI flags (--host / --port / --no-ui, CLI winning).

Prefer a container? Pull the image instead:

docker run -p 8080:8080 ghcr.io/open-lakehouse/mangrove:latest

Use as a library

[dependencies]
# The `package` rename keeps the `unitycatalog_server` import path.
unitycatalog-server = { package = "olai-uc-server", version = "0.0.1" }

A bare library build brings in only the handler/routing surface (default features axum + memory + grpc); the bin feature and its storage-backend / CLI / UI-serving dependencies stay out unless you opt in.

Feature flags

Feature Default What it enables
axum yes The axum router, extractors, and served HTTP surface.
memory yes The in-memory handler backend (random/time-ordered IDs).
grpc yes The generated tonic gRPC service.
proxy Reusable proxy leaves + a Unity Catalog client connector.
federation Federation over the proxy connector (implies proxy).
bin The deployable uc-server binary: SQLite/Postgres backends, the hybrid proxy, swagger UI, the CLI parser, and the healthcheck client.

Status

Experimental and pre-1.0; the API surface may change. Part of the mangrove workspace.

License

Licensed under the Apache License, Version 2.0.