Skip to content
/ cffi Public

Safe* C foreign function interface for Rust, using proc macros and marshaling types.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

cffi-rs/cffi

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.

About

Safe* C foreign function interface for Rust, using proc macros and marshaling types.

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Code of conduct

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •  

Languages