# Install h3 with Homebrew, dnf, MacPorts, Nix

Hexagonal hierarchical geospatial indexing system. Version 4.5.0 via Homebrew; verified 2026-05-22.

## Install

```sh
sudo av install brew:h3
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install h3
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install h3
```

  Evidence: MacPorts ports tree: gis/h3/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- dnf (92%):

```sh
sudo dnf install h3
```

  Evidence: Fedora Rawhide package metadata: h3 from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#h3
```

  Evidence: nixpkgs package indexes: h3 from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix

## Package facts

- **Package key:** brew:h3
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/h3>
- **Version:** 4.5.0
- **Source summary:** Hexagonal hierarchical geospatial indexing system
- **Homepage:** <https://uber.github.io/h3/>
- **Repository:** <https://github.com/uber/h3>
- **Upstream docs:** <https://github.com/uber/h3#readme>
- **License:** Apache-2.0
- **Source archive:** <https://github.com/uber/h3/archive/refs/tags/v4.5.0.tar.gz>
- **Last updated:** 2026-05-22T01:59:05Z
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- cellToBoundary (cli)
- cellToBoundaryHier (cli)
- cellToLatLng (cli)
- cellToLatLngHier (cli)
- cellToLocalIj (cli)
- gridDisk (cli)
- gridDiskUnsafe (cli)
- h3 (cli)
- h3ToComponents (cli)
- h3ToHier (cli)
- latLngToCell (cli)
- localIjToCell (cli)
- cellToBoundary (alias)
- cellToBoundaryHier (alias)
- cellToLatLng (alias)
- cellToLatLngHier (alias)
- cellToLocalIj (alias)
- gridDisk (alias)
- gridDiskUnsafe (alias)
- h3 (alias)
- h3ToComponents (alias)
- h3ToHier (alias)
- latLngToCell (alias)
- localIjToCell (alias)

## Build dependencies

- cmake

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 4.5.0
- Package-manager updated: 2026-05-22
- Local data: ok
- Upstream repository: https://github.com/uber/h3
- Upstream latest detected: v4.5.0 (current)
## Project history and usage

H3 is Uber's hexagonal hierarchical geospatial indexing system, implemented as a C core library with command-line tools and bindings across data platforms and programming languages. It is important in package ecosystems because it turns latitude/longitude data into stable cell IDs that can be joined, aggregated, visualized, and exchanged without carrying heavy GIS machinery into every project.

### Project history

Uber created H3 to support marketplace analysis, pricing, dispatch optimization, and spatial visualization at city scale. The public repository was created in December 2017, and Uber's engineering blog announced that H3 had been open sourced on GitHub and that JavaScript bindings had also been opened.

The H3 design combines a global hexagonal grid with a hierarchical index. Official documentation describes a discrete global grid system developed at Uber, with cells that can represent points and shapes, aggregate datasets at different resolutions, and support algorithms such as nearest neighbors, shortest paths, and smoothing.

The C library became the stable core, while Java, JavaScript, Python, and other bindings made the grid usable from application, analytics, and database workflows. The documentation's bindings page records the broader ecosystem, including cloud data warehouses, PostgreSQL, Spark-style analytics, and language bindings maintained by Uber and the community.

Version 4.0.0 in 2022 introduced breaking API changes around terminology, error handling, and more consistent function names, while preserving the grid layout and index interpretation across 3.x and 4.x. Later 4.x releases continued to add functions and improve algorithms while keeping the core index model stable.

### Adoption history

H3 adoption began with Uber's internal marketplace analytics and spread through open-source bindings and data-platform integrations. The Uber blog describes H3 as used throughout Uber for quantitative marketplace analysis, and the H3 site positions it for joining disparate datasets and aggregating at different precision levels.

Package-manager adoption reflects two audiences: developers who want the C CLI/library through Homebrew, MacPorts, Nix, or Linux packages, and data users who install bindings such as h3-py, h3-js, h3-java, PostgreSQL extensions, or warehouse functions. That split made H3 both a systems package and a data-analysis primitive.

### How it is used

The CLI examples convert latitude and longitude into a cell ID with `latLngToCell`, inspect boundaries with `cellToBoundary`, and operate on grid neighborhoods. Library users commonly index events, points, or polygons into cells, aggregate by resolution, compact or uncompact cell sets, find neighboring cells, and exchange indexes as 64-bit integers or hexadecimal strings.

Because the grid has fixed resolutions and a globally meaningful index, H3 is used for spatial joins, heatmaps, regional rollups, mobility analysis, delivery and dispatch models, and analytic tables where a cell ID can be a normal join key.

### Why package nerds care

H3 is a package-nerd favorite because a relatively small C library and CLI unlock a large ecosystem of geospatial workflows. It lets packages expose geospatial indexing through ordinary scalar values, which is much easier to package, bind, test, and move between languages than a full GIS stack.

The 4.0 migration is also historically important: the project took the pain of API renaming and error-return cleanup while documenting that existing H3 indexes and grid layout remained compatible. That distinction matters for package upgrades because stored H3 IDs can outlive a language binding or library major version.

### Timeline

- 2017: Public H3 repository created.
- 2018: Uber engineering blog described H3, its marketplace use, GitHub release, and JavaScript bindings.
- 2018: 3.x releases expanded local IJ, grid-line, and base-cell functions.
- 2020: 3.7.x releases added area and distance functions and packaging/build fixes.
- 2022: 4.0.0 introduced breaking API changes while preserving grid and index compatibility.
- 2024: 4.2.0 release added an experimental memory-efficient polygon-to-cells algorithm and an `h3` binary for shell-script use.
- 2025: 4.4.x releases added index-inspection and cell-construction functions.

### Related projects

- Related projects include S2 Geometry, h3-js, h3-java, h3-py, PostgreSQL H3 extensions, BigQuery and warehouse integrations, GIS systems, and spatial analytics platforms that use H3 cells as join and aggregation keys.

### Sources

- <https://formulae.brew.sh/formula/h3>
- <https://github.com/uber/h3>
- <https://github.com/uber/h3/releases>
- <https://h3geo.org/>
- <https://h3geo.org/docs/>
- <https://h3geo.org/docs/community/bindings/>
- <https://h3geo.org/docs/library/migrating-3.x/>
- <https://raw.githubusercontent.com/uber/h3/master/README.md>
- <https://www.uber.com/us/en/blog/h3/>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** h3
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- Nix - h3: normalized package name match | nixpkgs package indexes: h3 from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix
- dnf - h3 - 4.4.1-2.fc44: normalized package name match | Fedora Rawhide package metadata: h3 from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Hexagonal hierarchical geospatial indexing system | https://github.com/uber/h3
- dnf - h3-devel - 4.4.1-2.fc44: normalized package name match | Fedora Rawhide package metadata: h3-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Development files for h3 | https://github.com/uber/h3
- MacPorts - h3: normalized package name match | MacPorts ports tree: gis/h3/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [cmake](https://www.automicvault.com/pkg/brew/cmake/) - Build dependency declared by Homebrew.
- [h2](https://www.automicvault.com/pkg/brew/h2/) - Package name indicates the same formula family.
- [gdal](https://www.automicvault.com/pkg/brew/gdal/) - Shares av.db curated category or tags: cli, data, geospatial, gis.
- [geoserver](https://www.automicvault.com/pkg/brew/geoserver/) - Shares av.db curated category or tags: cli, data, geospatial, gis.
- [libgeotiff](https://www.automicvault.com/pkg/brew/libgeotiff/) - Shares av.db curated category or tags: cli, data, geospatial, gis.
- [mapnik](https://www.automicvault.com/pkg/brew/mapnik/) - Shares av.db curated category or tags: cli, data, geospatial, gis.
- [mapproxy](https://www.automicvault.com/pkg/brew/mapproxy/) - Shares av.db curated category or tags: cli, data, geospatial, gis.
- [mapserver](https://www.automicvault.com/pkg/brew/mapserver/) - Shares av.db curated category or tags: cli, data, geospatial, gis.
- [postgis](https://www.automicvault.com/pkg/brew/postgis/) - Shares av.db curated category or tags: cli, data, geospatial, gis.
- [shapelib](https://www.automicvault.com/pkg/brew/shapelib/) - Shares av.db curated category or tags: cli, data, geospatial, gis.
- [h3](https://www.automicvault.com/pkg/npm/h3/) - Same normalized package name in another local ecosystem.

## Combined YAML source

View the package source record on GitHub. [combined/h3.yml](https://github.com/automic-vault/db/blob/main/combined/h3.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
