hs-bindgen

Handy macro to generate C-FFI bindings from Rust to Haskell.

This library intended to work best in a project configured by cabal-pack.

Example

```rust use hs_bindgen::*;

[hs_bindgen]

fn greetings(name: &str) { println!("Hello, {name}!"); } ```

... will be expanded to ...

```rust fn greetings(name: &str) { println!("Hello, {name}!"); }

[no_mangle] // Mangling randomize symbols

extern "C" fn cgreetings(0: *const std::os::raw::cchar) { greetings(hsbindgentraits::ReprC::from(0)) } ```

Acknowledgments

⚠️ This is still a working experiment, not yet production ready.

hs-bindgen was heavily inspired by other interoperability initiatives, as wasm-bindgen and PyO3.

This project was part of a work assignment as an IOG contractor.