7 releases

0.1.7 Sep 15, 2021
0.1.6 May 4, 2021
0.1.5 Apr 28, 2021
0.1.3 Dec 7, 2020
0.0.0 Oct 15, 2020

#177 in Procedural macros

Download history 36/week @ 2022-10-08 10/week @ 2022-10-15 19/week @ 2022-10-22 46/week @ 2022-10-29 43/week @ 2022-11-05 20/week @ 2022-11-12 23/week @ 2022-11-19 11/week @ 2022-11-26 19/week @ 2022-12-03 25/week @ 2022-12-10 28/week @ 2022-12-17 13/week @ 2022-12-24 14/week @ 2022-12-31 10/week @ 2023-01-07 18/week @ 2023-01-14 32/week @ 2023-01-21

75 downloads per month
Used in 4 crates (2 directly)

Apache-2.0 OR MIT

39KB
860 lines

Actions Status Documentation

cffi

Use the #[cffi::marshal(...)] proc macro to make unsafe C functions into much safer functions, both for exporting interfaces and consuming functions from C libraries.

Usage

See the documentation for the various marshallers available.

Where is this used?

  • pahkat - a multi-platform package management framework
  • divvunspell - a multi-platform highly efficient memory-mapping spell checking library

Background and philosophy

We enforce the usage of stdint.h types on the C side to simplify the implementation on the Rust side.

Interesting reads:

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~2.3–3.5MB
~88K SLoC