Skip to content

Repository files navigation

Kasanari (重なり)

Kasanari is an open-source REST catalog service for Apache Iceberg, Apache Paimon, and Lance. It provides a unified API gateway so query engines and clients can share catalog metadata across platforms without being tied to a single catalog implementation.

📖 Documentation · Quickstart · Examples

Why Kasanari?

Use Kasanari as a full catalog implementation or as a proxy in front of an existing catalog:

  • Multi-engine interoperability — expose Iceberg, Paimon, and Lance catalogs over REST from one service
  • Catalog migration — move to REST once, then swap the backing implementation without changing client code
  • Engine compatibility — let engines that only speak REST use JDBC, Hive, Hadoop, or other upstream catalogs

Each catalog runs in one of two modes:

Mode Description
INTERNAL Kasanari owns metadata lifecycle and storage
PROXY Kasanari forwards requests to an upstream catalog while keeping a unified API and security layer

Multiple INTERNAL or PROXY catalogs of the same type can be registered side by side.

Supported catalogs

Catalog Version
Apache Iceberg 1.11.0
Apache Paimon 1.4.2
Lance 0.7.2

Proxy backends include JDBC, Hive, Hadoop, filesystem, and REST implementations — see the catalog docs for details.

Features

  • Unified REST APIs for Iceberg, Paimon, and Lance catalog operations
  • Management API to register, update, and list catalogs at runtime
  • Pluggable authenticationnone, LDAP, OIDC, or custom SPI providers
  • Pluggable authorization — allow-all, Casbin RBAC, or custom SPI providers
  • Instrumentation SPI for audit and logging hooks on catalog requests
  • Runnable examples for Trino, StarRocks, Spark, auth, and observability setups

Quick start

Prerequisites: Docker, Docker Compose, curl, and jq.

  1. Follow the Quickstart guide to bring up PostgreSQL, MinIO, and Kasanari.
  2. Register Iceberg, Paimon, and Lance catalogs via the Management API.
  3. Point your engine at the REST endpoints (see Examples).

Or pull a published image from Docker Hub:

docker pull nryanov/kasanari:latest
docker run -p 9090:9090 nryanov/kasanari:latest

Build from source

For contributors or when you need a custom image. Requirements: JDK 21, Gradle.

# Build a local container image (default tag: local/kasanari:<version>)
./scripts/build-container-images.sh

# Cross-platform image build
QUARKUS_JIB_PLATFORMS=linux/amd64 ./scripts/build-container-images.sh
QUARKUS_JIB_PLATFORMS=linux/arm64/v8 ./scripts/build-container-images.sh

Documentation

Topic Link
Getting started Quickstart
Catalog configuration Iceberg · Paimon · Lance
Management API API reference
Security Authentication & authorization
Observability Metrics & tracing
Examples Runnable examples

License

Licensed under the Apache License 2.0.

About

Kasanari is an open-source catalog for Apache Iceberg, Apache Paimon and Lance

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages