5 releases

0.1.6 May 4, 2021
0.1.5 Apr 28, 2021
0.1.4 Apr 28, 2021
0.1.2 Oct 16, 2020
0.1.0 Oct 15, 2020

#15 in #marshal

Download history 16/week @ 2025-11-27 14/week @ 2025-12-04 12/week @ 2025-12-11 42/week @ 2025-12-18 119/week @ 2025-12-25 12/week @ 2026-01-01 3/week @ 2026-01-08 14/week @ 2026-01-15 13/week @ 2026-01-22 13/week @ 2026-01-29 70/week @ 2026-02-05 15/week @ 2026-02-12 23/week @ 2026-02-19 23/week @ 2026-02-26 22/week @ 2026-03-05 23/week @ 2026-03-12

92 downloads per month
Used in 6 crates (via cffi)

Apache-2.0 OR MIT

47KB
1K SLoC

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

~4.5–8MB
~147K SLoC