Iceberg Go

Apache Iceberg Go is a Go-native implementation of Apache Iceberg, the open table format for analytic datasets. Read and write Iceberg tables from Go services and tooling without a JVM.

Go Reference

Where to start

  • Install - get the library and CLI on your machine.
  • CLI - inspect tables, run maintenance, manage refs.
  • API - construct catalogs, scan tables, write Arrow data, evolve schemas.
  • Configuration - YAML config file, catalog options, FileIO and credentials, table properties.

What works today

A capability matrix - filesystem, metadata operations, catalog support, and write operations - lives on the dedicated Feature Status page.

Beyond Go

Apache Iceberg is multi-language. PyIceberg, iceberg-rust, iceberg-cpp, and the Java reference implementation all target the same spec - see Other Iceberg implementations for cross-links.

Help and contribution

The canonical Iceberg specification, terminology, and multi-engine policy live with the main project at iceberg.apache.org. This site covers what is specific to the Go implementation.