#grib #meteorology #weather #bufr #api-bindings #eccodes

sys eccodes-sys

Low-level Rust bindings for latests ecCodes version

7 unstable releases

0.5.2 Jan 30, 2024
0.5.0 May 7, 2023
0.4.2 Dec 30, 2022
0.3.1 Dec 3, 2021
0.1.2 Jun 26, 2021

#991 in Math

43 downloads per month
Used in eccodes

Apache-2.0

170KB
6K SLoC

eccodes-sys

License Crates.io dependency status GitHub Workflow Status

This is a -sys crate with raw, unsafe bindings to the library and its API should not be used directly. See the eccodes crate for high-level, safe bindings.

Due to the complexity of ecCodes library the decision has been made that this crate will not build ecCodes from source. See sections below for additional information how to install ecCodes on your system.

ecCodes is an open-source library for reading and writing GRIB and BUFR files developed by European Centre for Medium-Range Weather Forecasts.

Usage

This crate will look for existing libeccodes installation using pkg-config. The ecCodes library is then linked and bindings are generated using bindgen. If the library is not found, the build will fail.

ecCodes installation

The recommended way to install ecCodes on your computer is using your package manager. For example, on Ubuntu you can use apt-get:

sudo apt-get install libeccodes-dev

Alternatively, you can install the library manually from source in suitable directory following this instructions.

Then add the lib/pkgconfig directory from your ecCodes installation directory to the PKG_CONFIG_PATH environmental variable. If ecCodes have been compiled as shared library you will also need to specify LD_LIBRARY_PATH. For example:

export PKG_CONFIG_PATH=<your_eccodes_path>/lib/pkgconfig
export LD_LIBRARY_PATH=<your_eccodes_path>/lib

Features

There are two development features available:

  • docs - for documentation building, does not link ecCodes and includes bindings-docs.rs into lib.rs
  • tests - turns on generation of layout tests by bindgen, should not be used in production. Layout tests are off by default as they dereference null pointers causing undefined behavior

License

The ecCodes library and these bindings are licensed under the Apache License Version 2.0

Dependencies

~0–1.9MB
~37K SLoC