# Install eccodes with Homebrew, apk, apt, dnf, MacPorts, Nix

Decode and encode messages in the GRIB 1/2 and BUFR 3/4 formats. Version 2.47.0 via Homebrew; verified 2026-04-22.

## Install

```sh
sudo av install brew:eccodes
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install eccodes
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install ecCodes
```

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

### Linux

- apk (92%):

```sh
sudo apk add eccodes
```

  Evidence: Alpine Linux edge package indexes: eccodes from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install libeccodes-data
```

  Evidence: Debian stable package indexes: libeccodes-data from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install eccodes
```

  Evidence: Fedora Rawhide package metadata: eccodes 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#eccodes
```

  Evidence: nixpkgs package indexes: pkgs/by-name/ec/eccodes/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:eccodes
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/eccodes>
- **Version:** 2.47.0
- **Source summary:** Decode and encode messages in the GRIB 1/2 and BUFR 3/4 formats
- **Homepage:** <https://confluence.ecmwf.int/display/ECC>
- **Repository:** <https://github.com/ecmwf/eccodes>
- **Upstream docs:** <https://confluence.ecmwf.int/display/ECC>
- **License:** Apache-2.0
- **Source archive:** <https://confluence.ecmwf.int/download/attachments/45757960/eccodes-2.47.0-Source.tar.gz>
- **Last updated:** 2026-04-22T21:19:38Z
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- bufr_compare (cli)
- bufr_compare_dir (cli)
- bufr_copy (cli)
- bufr_count (cli)
- bufr_dump (cli)
- bufr_filter (cli)
- bufr_get (cli)
- bufr_index_build (cli)
- bufr_ls (cli)
- bufr_set (cli)
- codes_bufr_filter (cli)
- codes_config (cli)
- codes_count (cli)
- codes_export_resource (cli)
- codes_info (cli)
- codes_parser (cli)
- codes_split_file (cli)
- grib2ppm (cli)
- grib_compare (cli)
- grib_copy (cli)
- grib_count (cli)
- grib_dump (cli)
- grib_filter (cli)
- grib_get (cli)
- grib_get_data (cli)
- grib_histogram (cli)
- grib_index_build (cli)
- grib_ls (cli)
- grib_set (cli)
- grib_to_netcdf (cli)
- gts_compare (cli)
- gts_copy (cli)
- gts_count (cli)
- gts_dump (cli)
- gts_filter (cli)
- gts_get (cli)
- gts_ls (cli)
- bufr_compare (alias)
- bufr_compare_dir (alias)
- bufr_copy (alias)
- bufr_count (alias)
- bufr_dump (alias)
- bufr_filter (alias)
- bufr_get (alias)
- bufr_index_build (alias)
- bufr_ls (alias)
- bufr_set (alias)
- codes_bufr_filter (alias)
- codes_config (alias)
- codes_count (alias)
- codes_export_resource (alias)
- codes_info (alias)
- codes_parser (alias)
- codes_split_file (alias)
- grib2ppm (alias)
- grib_compare (alias)
- grib_copy (alias)
- grib_count (alias)
- grib_dump (alias)
- grib_filter (alias)
- grib_get (alias)
- grib_get_data (alias)
- grib_histogram (alias)
- grib_index_build (alias)
- grib_ls (alias)
- grib_set (alias)
- grib_to_netcdf (alias)
- gts_compare (alias)
- gts_copy (alias)
- gts_count (alias)
- gts_dump (alias)
- gts_filter (alias)
- gts_get (alias)
- gts_ls (alias)

## Dependencies

- gcc
- libaec
- libpng
- netcdf
- openjpeg

## 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: 2.47.0
- Package-manager updated: 2026-04-22
- Local data: ok
- Upstream repository: https://confluence.ecmwf.int/display/ECC
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

ecCodes is ECMWF's library and command-line toolkit for decoding and encoding meteorological message formats, especially GRIB and BUFR. It is package-manager significant because it is infrastructure: many weather, climate, forecasting, and data-conversion workflows depend on having its tools and libraries installed correctly.

### Project history

ECMWF describes ecCodes as a package providing an API and command-line tools for WMO GRIB editions 1 and 2, BUFR editions 3 and 4, and decoding of WMO GTS abbreviated headers. The repository README says it provides C, Fortran 90, and Python interfaces along with quick command-line access to messages.

The project is explicitly the evolution of ECMWF's older GRIB-API. ECMWF's documentation says ecCodes fully provides GRIB-API functionality for GRIB encoding and decoding, keeps the C, Fortran 90, and Python interfaces, drops the old Fortran 77 interface, and adds a codes_ API that works across supported message formats.

ECMWF marks ecCodes as the primary GRIB encoding/decoding package used at ECMWF and notes that GRIB-API has not been maintained since December 2018. That replacement history is central to ecCodes adoption: existing GRIB-API users were strongly advised to migrate, with compatibility maintained where possible.

The GitHub repository was created in December 2018 and is still active, with the README carrying ECMWF software maturity badges and 2026 releases in the 2.4x series.

### Adoption history

ecCodes' adoption follows the operational meteorology stack rather than the usual application-CLI pattern. It is used where GRIB and BUFR data are read, written, inspected, filtered, converted, or bridged into Python, Fortran, C, and NetCDF workflows.

Package metadata shows ecCodes available in Homebrew, Alpine, Fedora-family packaging, MacPorts, Nix, and Debian/Ubuntu data packages. That broad packaging matters because meteorological tools often expect ecCodes definitions and command-line programs such as grib_ls, grib_get, grib_set, bufr_dump, and grib_to_netcdf to be present.

### How it is used

Users commonly install ecCodes for command-line inspection and transformation of GRIB/BUFR files, for language bindings, or as a dependency of higher-level weather-data software. The command suite includes GRIB, BUFR, GTS, and generic codes_* tools.

The migration documentation explains that many GRIB-API functions and tools were retained or mapped into ecCodes, while some experimental or superseded tools were removed. That makes ecCodes both a compatibility layer for old workflows and the maintained path forward.

### Why package nerds care

ecCodes is the kind of package that quietly makes scientific software distributions work. It ships binary tools, libraries, format definitions, samples, and bindings around specialized international data formats; small packaging mistakes can break large data-processing pipelines.

It is also a case study in successor packaging: GRIB-API users needed a maintained replacement that preserved enough CLI and ABI/API behavior to make migration practical while adding BUFR and GTS coverage under one key/value access model.

### Timeline

- 2005: ECMWF copyright range for the software begins.
- 2018: ecCodes GitHub repository created; GRIB-API maintenance ends in December 2018.
- 2021-2022: Public GitHub releases show active 2.x release cadence.
- 2026: ecCodes 2.47.0 released and repository remains active.

### Related projects

- GRIB-API is the direct predecessor and compatibility target for much of ecCodes' GRIB functionality.
- CodesUI, mentioned in ECMWF's ecCodes documentation, is a related user interface for ecCodes.
- Higher-level meteorological software commonly pairs ecCodes with Python bindings, Fortran/C applications, and conversion tools such as grib_to_netcdf.

### Sources

- <https://github.com/ecmwf/eccodes>
- <https://raw.githubusercontent.com/ecmwf/eccodes/develop/README.md>
- <https://confluence.ecmwf.int/display/ECC/ecCodes+Home>
- <https://confluence.ecmwf.int/display/ECC/What+is+ecCodes>
- <https://confluence.ecmwf.int/display/ECC/GRIB-API+migration>
- <https://github.com/ecmwf/eccodes/releases>
- <https://api.github.com/repos/ecmwf/eccodes>


## 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:** eccodes
- **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

- Debian apt - libeccodes-data - 2.41.0-1: normalized package name match | Debian stable package indexes: libeccodes-data from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GRIB and BUFR enecoding/encoding software library - data | https://software.ecmwf.int/wiki/display/ECC/ecCodes+Home
- Debian apt - libeccodes-dev - 2.41.0-1: normalized package name match | Debian stable package indexes: libeccodes-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GRIB and BUFR decoding/encoding software library (development) | https://software.ecmwf.int/wiki/display/ECC/ecCodes+Home
- Debian apt - libeccodes-doc - 2.41.0-1: normalized package name match | Debian stable package indexes: libeccodes-doc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GRIB decoding/encoding software (documentation) | https://software.ecmwf.int/wiki/display/ECC/ecCodes+Home
- Debian apt - libeccodes-tools - 2.41.0-1: normalized package name match | Debian stable package indexes: libeccodes-tools from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GRIB decoding/encoding software (utilities) | https://software.ecmwf.int/wiki/display/ECC/ecCodes+Home
- Debian apt - libeccodes0 - 2.41.0-1: normalized package name match | Debian stable package indexes: libeccodes0 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GRIB and BUFR enecoding/encoding software library | https://software.ecmwf.int/wiki/display/ECC/ecCodes+Home
- Nix - eccodes: normalized package name match | nixpkgs package indexes: pkgs/by-name/ec/eccodes/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - libeccodes-data - 2.34.1-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: libeccodes-data from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | GRIB and BUFR enecoding/encoding software library - data | https://software.ecmwf.int/wiki/display/ECC/ecCodes+Home
- Ubuntu apt - libeccodes-dev - 2.34.1-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: libeccodes-dev from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | GRIB and BUFR decoding/encoding software library (development) | https://software.ecmwf.int/wiki/display/ECC/ecCodes+Home
- Ubuntu apt - libeccodes-doc - 2.34.1-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: libeccodes-doc from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | GRIB decoding/encoding software (documentation) | https://software.ecmwf.int/wiki/display/ECC/ecCodes+Home
- Ubuntu apt - libeccodes-tools - 2.34.1-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: libeccodes-tools from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | GRIB decoding/encoding software (utilities) | https://software.ecmwf.int/wiki/display/ECC/ecCodes+Home
- Ubuntu apt - libeccodes0 - 2.34.1-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: libeccodes0 from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | GRIB and BUFR enecoding/encoding software library | https://software.ecmwf.int/wiki/display/ECC/ecCodes+Home
- apk - eccodes - 2.46.0-r0: normalized package name match | Alpine Linux edge package indexes: eccodes from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | API and tools for decoding and encoding WMO meteorological message formats | https://github.com/ecmwf/eccodes
- dnf - eccodes - 2.47.0-1.fc45: normalized package name match | Fedora Rawhide package metadata: eccodes from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | WMO data format decoding and encoding | https://confluence.ecmwf.int/display/ECC/ecCodes+Home
- dnf - eccodes-data - 2.47.0-1.fc45: normalized package name match | Fedora Rawhide package metadata: eccodes-data from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Data needed by the eccodes library and tools | https://confluence.ecmwf.int/display/ECC/ecCodes+Home
- dnf - eccodes-devel - 2.47.0-1.fc45: normalized package name match | Fedora Rawhide package metadata: eccodes-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Contains ecCodes development files | https://confluence.ecmwf.int/display/ECC/ecCodes+Home
- dnf - eccodes-doc - 2.47.0-1.fc45: normalized package name match | Fedora Rawhide package metadata: eccodes-doc from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Documentation and example code | https://confluence.ecmwf.int/display/ECC/ecCodes+Home


## Related links

- [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.
- [Database and data packages](https://www.automicvault.com/pkg/database-data-tools/) - Matched database, SQL, migration, or data-store metadata.
- [gcc](https://www.automicvault.com/pkg/brew/gcc/) - Runtime dependency declared by Homebrew.
- [libpng](https://www.automicvault.com/pkg/brew/libpng/) - Runtime dependency declared by Homebrew.
- [netcdf](https://www.automicvault.com/pkg/brew/netcdf/) - Runtime dependency declared by Homebrew.
- [openjpeg](https://www.automicvault.com/pkg/brew/openjpeg/) - Runtime dependency declared by Homebrew.
- [cmake](https://www.automicvault.com/pkg/brew/cmake/) - Build dependency declared by Homebrew.
- [cdi](https://www.automicvault.com/pkg/brew/cdi/) - Popular package that depends on this formula.
- [cdo](https://www.automicvault.com/pkg/brew/cdo/) - Popular package that depends on this formula.
- [magics](https://www.automicvault.com/pkg/brew/magics/) - Popular package that depends on this formula.
- [metview](https://www.automicvault.com/pkg/brew/metview/) - Popular package that depends on this formula.
- [base91](https://www.automicvault.com/pkg/brew/base91/) - Shares av.db curated category or tags: cli, data, data-formats, decoding, encoding.
- [gdal](https://www.automicvault.com/pkg/brew/gdal/) - Shares av.db curated category or tags: cli, data, data-formats.
- [adios2](https://www.automicvault.com/pkg/brew/adios2/) - Shares av.db curated category or tags: cli, data.
- [alluxio](https://www.automicvault.com/pkg/brew/alluxio/) - Shares av.db curated category or tags: cli, data.
- [anyquery](https://www.automicvault.com/pkg/brew/anyquery/) - Shares av.db curated category or tags: cli, data.
- [apache-arrow](https://www.automicvault.com/pkg/brew/apache-arrow/) - Shares av.db curated category or tags: cli, data.
- [apache-drill](https://www.automicvault.com/pkg/brew/apache-drill/) - Shares av.db curated category or tags: cli, data.

## Combined YAML source

View the package source record on GitHub. [combined/eccodes.yml](https://github.com/automic-vault/db/blob/main/combined/eccodes.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
