All Projects → cffi-rs → cffi

cffi-rs / cffi

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

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to cffi

ol
Otus Lisp (Ol in short) is a purely* functional dialect of Lisp.
Stars: ✭ 157 (+946.67%)
Mutual labels:  ffi
windigo
Windows API and GUI in idiomatic Go.
Stars: ✭ 187 (+1146.67%)
Mutual labels:  ffi
generic-linked-in-driver
A generic non-blocking linked-in driver for interfacing Erlang and C
Stars: ✭ 46 (+206.67%)
Mutual labels:  ffi
wasm
Utilities for loading and running WASM modules from Dart code
Stars: ✭ 252 (+1580%)
Mutual labels:  ffi
idris-ffi-example
A minimal example of the Idris C FFI
Stars: ✭ 14 (-6.67%)
Mutual labels:  ffi
PointerScript
Scripting language with pointers and native library access.
Stars: ✭ 26 (+73.33%)
Mutual labels:  ffi
rust-flutter-reactive
This is a sample app to improve consistency over Mobile App Development.
Stars: ✭ 25 (+66.67%)
Mutual labels:  ffi
swift-bridge
swift-bridge facilitates Rust and Swift interop.
Stars: ✭ 260 (+1633.33%)
Mutual labels:  ffi
buke
full text search manpages
Stars: ✭ 27 (+80%)
Mutual labels:  ffi
pybluemonday
pybluemonday is a library for sanitizing HTML very quickly via bluemonday.
Stars: ✭ 25 (+66.67%)
Mutual labels:  ffi
opencl-ruby
OpenCL bindings for Ruby
Stars: ✭ 38 (+153.33%)
Mutual labels:  ffi
pony-sodium
Safe Pony FFI wrapper for the libsodium cryptography library. 🐴 🔐
Stars: ✭ 24 (+60%)
Mutual labels:  ffi
php-rdkafka-ffi
PHP Kafka client - binding librdkafka via FFI
Stars: ✭ 49 (+226.67%)
Mutual labels:  ffi
clr-loader
Loader for different .NET runtimes
Stars: ✭ 16 (+6.67%)
Mutual labels:  ffi
eta-ffi
A command line tool to automate the generation of ffi import code for the bindings of various Java libraries.
Stars: ✭ 19 (+26.67%)
Mutual labels:  ffi
ffi-clang
Ruby FFI bindings for libclang 3.4+.
Stars: ✭ 41 (+173.33%)
Mutual labels:  ffi
lonlat bng
A multithreaded Rust library with FFI for converting WGS84 longitude and latitude coordinates into BNG (OSGB36) Eastings and Northings and vice versa (using OSTN15)
Stars: ✭ 20 (+33.33%)
Mutual labels:  ffi
libserialport.dart
Serial Port for Dart
Stars: ✭ 51 (+240%)
Mutual labels:  ffi
purescript-ffi-utils
A utility library for the purescript foreign function interface
Stars: ✭ 22 (+46.67%)
Mutual labels:  ffi
winsafe
Windows API and GUI in safe, idiomatic Rust.
Stars: ✭ 110 (+633.33%)
Mutual labels:  ffi

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].