36 releases (breaking)

0.27.1 Dec 2, 2023
0.26.0 Oct 13, 2023
0.25.0 Oct 9, 2023
0.24.0 May 12, 2023
0.4.1 Nov 19, 2020

#2375 in Magic Beans

Download history 2/week @ 2024-02-17 13/week @ 2024-02-24 3/week @ 2024-03-09 1/week @ 2024-03-16 122/week @ 2024-03-30 37/week @ 2024-04-06

101 downloads per month

CC0 license

270KB
6K SLoC

C bindings for ergo-lib

A thin wrapper for core Rust part of C bindings Does not use Rust types in the API and is suitable for C FFI.

Build instructions

The following command builds the project with REST API features:

cargo build -p ergo-lib-c --features rest

To build without REST simply omit --features rest.

The C header file is generated with cbindgen. Run the following command:

cbindgen --config cbindgen.toml --crate ergo-lib-c --output h/ergo_lib.h

Note that we require a nightly version of rustc just for this command. This is because we use macros to generate some C-types and cbindgen cannot directly generate types through them. However cbindgen gives us the option to expand macros, which can only be done through a nightly version of rustc. The crate itself can always be compiled by a stable version of rustc.


lib.rs:

C bindings for ergo-lib

Dependencies

~19–32MB
~541K SLoC