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 asolai-uc-serverwhile 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 thebinfeature), withserve/migrate/healthchecksubcommands. This is the same binary that ships as themangroveDocker 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:
This installs uc-server:
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:
Use as a library
[]
# The `package` rename keeps the `unitycatalog_server` import path.
= { = "olai-uc-server", = "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.