Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --
Apache Polaris
Apache Polaris™ is an open-source, fully-featured catalog for Apache Iceberg™. It implements Iceberg's REST API, enabling seamless multi-engine interoperability across a wide range of platforms, including Apache Doris™, Apache Flink®, Apache Spark™, Dremio® OSS, StarRocks, and Trino.
Documentation is available at https://polaris.apache.org. The REST OpenAPI specifications can be browsed online: Polaris Management API and Polaris Catalog API.
For a high-level, auto-generated tour of the codebase's modules and relationships, see the Code Wiki for Apache Polaris. It is a third-party, auto-generated navigation aid, useful for orientation, but the source tree remains the authoritative reference.
To get involved, [subscribe to the dev mailing list][dev-list-subscribe] (or browse the archives) and read the CONTRIBUTING guide.
[dev-list-subscribe]: mailto:dev-subscribe@polaris.apache.org
Overview & Quickstart
- Overview of what Polaris is and how it works.
- Quickstart to set up a Polaris instance locally or on a supported cloud provider.
Project Structure
The repository is organized into the following groups of Gradle modules. Each leaf is a Gradle subproject; some link to a per-module README.
- Core
- polaris-core - entity definitions and core business logic
- API - generated from the OpenAPI specifications:
- polaris-api-management-model, polaris-api-management-service - Polaris Management API
- polaris-api-iceberg-service - Iceberg REST service
- polaris-api-catalog-service - Polaris Catalog API
- Runtime
- polaris-server - Quarkus-based server
- polaris-admin - admin tool, mainly for bootstrapping persistence
- polaris-runtime-service - the Polaris service package
- polaris-runtime-defaults - default runtime configuration
- polaris-distribution - distribution packaging
- polaris-runtime-common, polaris-runtime-test-common - shared runtime and test utilities
- polaris-runtime-spark-tests - integration tests for the Spark plugin
- Persistence
- polaris-relational-jdbc - JDBC implementation of BasePersistence
- Extensions
- polaris-extensions-federation-hive, polaris-extensions-federation-hadoop, polaris-extensions-federation-bigquery - catalog federation
- polaris-extensions-auth-opa, polaris-extensions-auth-ranger (plus -tests) - external authorization
- Tooling & build support
- polaris-bom, polaris-build-logic, polaris-version - BOM, shared build logic, versioning
- polaris-immutables, polaris-misc-types, polaris-container-spec-helper - shared utilities
- polaris-floci-aws-testcontainer, polaris-floci-az-testcontainer, polaris-floci-gcp-testcontainer,
polaris-minio-testcontainer, polaris-rustfs-testcontainer, polaris-hms-testcontainer - test containers