Crate eccodes_sys
source ·Expand description
§Low-level Rust bindings for ecCodes
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 reccomended 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. For example:
$ export PKG_CONFIG_PATH=<your_eccodes_path>/lib/pkgconfig
§Features
There are two development features available:
docs
- for documentation building, does not link ecCodes and includesbindings-docs.rs
intolib.rs
tests
- turns on generation of layout tests bybindgen
, should not be used in production. Layout tests are off by default as they derefrence null pointers causing undefined behaviour
Structs§
Constants§
Statics§
- Global mutex to synchronize functions that fail in concurrent context, eg.
codes_handle_new_from_file
,codes_index_add_file
etc.
Functions§
- __j0⚠
- __j1⚠
- __jn⚠
- __y0⚠
- __y1⚠
- __yn⚠
- a64l⚠
- abs⚠
- acos⚠
- asin⚠
- atan⚠
- atof⚠
- atoi⚠
- atol⚠
- bcmp⚠
- cbrt⚠
- ceil⚠
- cos⚠
- cosf⚠
- cosh⚠
- cosl⚠
- div⚠
- drem⚠
- ecvt⚠
- erf⚠
- erfc⚠
- erff⚠
- erfl⚠
- exit⚠
- exp⚠
- exp2⚠
- expf⚠
- expl⚠
- fabs⚠
- fcvt⚠
- fdim⚠
- feof⚠
- ffs⚠
- ffsl⚠
- fma⚠
- fmaf⚠
- fmal⚠
- fmax⚠
- fmin⚠
- fmod⚠
- free⚠
- gcvt⚠
- getc⚠
- getw⚠
- j0⚠
- j0f⚠
- j0l⚠
- j1⚠
- j1f⚠
- j1l⚠
- jn⚠
- jnf⚠
- jnl⚠
- l64a⚠
- labs⚠
- ldiv⚠
- log⚠
- log2⚠
- logb⚠
- logf⚠
- logl⚠
- modf⚠
- nan⚠
- nanf⚠
- nanl⚠
- pow⚠
- powf⚠
- powl⚠
- putc⚠
- puts⚠
- putw⚠
- rand⚠
- rint⚠
- sin⚠
- sinf⚠
- sinh⚠
- sinl⚠
- sqrt⚠
- tan⚠
- tanf⚠
- tanh⚠
- tanl⚠
- y0⚠
- y0f⚠
- y0l⚠
- y1⚠
- y1f⚠
- y1l⚠
- yn⚠
- ynf⚠
- ynl⚠