Foreign Function Interface

The Rust FFI Omnibus (a collection of examples of using code written in Rust from other languages)

Newest releases

Bromeon js-sandbox is a Rust library for executing JavaScript code from Rust in a secure sandbox. It is based on the Deno project and uses serde_json for serialization.
 

denoland A Rust crate to generate documentation for JavaScript and TypeScript modules.
 

asgrim Using a Rust lib in a PHP FFI test
 

PyO3 rust-numpy Rust bindings for the NumPy C-API API documentation Latest release (possibly broken) Current Master Requirements current nightly rust (see
 

sean1708 Please be aware that this crate is no longer actively maintained, please look into the much more feature rich cbindgen instead. rusty-cheddar rusty-ch
 

manishearth rust-adorn Python-style function decorators for Rust Example usage: use adorn::{adorn, make_decorator}; #[adorn(bar)] fn foo(a: &mut u8, b: &mut u8,
 

Gigoteur Unicorn Console Unicorn Console is a quick and dirty engine that let you do what you want with a resolution of 400x240 pixels. The main engine is not
 

kud1ing Rucaja (Rust calls Java) Calling JVM code from Rust via JNI. Usage JNI calls are about 10-20 times slower than regular JVM instructions. It is adviced
 

gperinazzo Dict-Derive Derive macro for PyO3's FromPyObject and IntoPy<PyObject> traits. The derived implementation turns a Python's dict into your Rust struct a
 

thepowersgang Rust implementation of C's va_list type Overview This crate provides a rust VaListtype, which is binary-compatible for the C va_list type. It is inten
 

kennytm mbox: malloc-based box This crate provides structures that wrap pointers returned from malloc as a Box, and automatically free them on drop. These typ
 

optimisticpeach dart-sys Native bindings to the dart native extensions sdk. This crate exposes an api for dart_api.h, which exposes the basic dart native extensions a
 

nvzqz High-level, zero (or low) cost bindings of Ruby's C API for Rust. Index Features Installation Building Usage Managing Ruby's Virtual Machine Calling R
 

pyo3 Maturin formerly pyo3-pack Build and publish crates with pyo3, rust-cpython and cffi bindings as well as rust binaries as python packages. This projec
 

pyo3 pyo3-built Simple macro to expose metadata obtained with the built crate as a PyDict Usage Add the following to your Cargo.toml manifest: [build-depen
 

fusion-engineering inline-python Inline Python code directly in your Rust code. Example #![feature(proc_macro_hygiene)] use inline_python::python; fn main() { let w
 

tov libffi-rs: Rust bindings for libffi The C libffi library provides two main facilities: assembling calls to functions dynamically, and creating closure
 

ubolonton Emacs Module in Rust User Guide | Change Log | Examples This provides a high-level binding to emacs-module, Emacs's support for dynamic modules. Code
 

dylni OsStr Bytes This crate allows interacting with the data stored internally by OsStr and OsString, without resorting to panics or corruption for invalid
 

pyo3 PyO3 Rust bindings for Python. This includes running and interacting with Python code from a Rust binary, as well as writing native Python modules. Us
 

rhysd wain wain is a WebAssembly INterpreter written in Rust from scratch with zero dependencies. An implementation of WebAssembly. Features: No unsafe code
 

rustwasm wasm-bindgen Facilitating high-level interactions between Wasm modules and JavaScript. Guide | API Docs | Contributing | Chat Built with πŸ¦€ πŸ•Έ by The
 

rustwasm πŸ“¦ ✨ wasm-pack Your favorite Rust β†’ Wasm workflow tool! Docs | Contributing | Chat Built with πŸ¦€ πŸ•Έ by The Rust and WebAssembly Working Group About Th
 

rustwasm πŸ“¦ ✨ wasm-pack Your favorite Rust β†’ Wasm workflow tool! Docs | Contributing | Chat Built with πŸ¦€ πŸ•Έ by The Rust and WebAssembly Working Group About Th
 

tildeio Helix Helix allows you to write Ruby classes in Rust without having to write the glue code yourself. ruby! { class Console { def log(strin
 

danielpclark Rutie Rutie β€” /ro͞oˈˌtΔ«/rOOˈˌtI/rüˈˌtaI/ Integrate Ruby with your Rust application. Or integrate Rust with your Ruby application. This project allows
 

d-unseductable Ruru (Rust + Ruby) Native Ruby extensions in Rust Documentation Website Have you ever considered rewriting some parts of your slow Ruby application? J
 

PyO3 PyO3 Rust bindings for Python. This includes running and interacting with Python code from a Rust binary, as well as writing native Python modules. Us
 

dgrunwald rust-cpython Rust bindings for the python interpreter. Documentation Cargo package: cpython Copyright (c) 2015-2020 Daniel Grunwald. Rust-cpython is l
 

vickenty Perl XS for Rust High-level Rust bindings to Perl XS API. Example xs!
 

SSheldon Objective-C Runtime bindings and wrapper for Rust. Documentation: http://ssheldon.github.io/rust-objc/objc/ Crate: https://crates.io/crates/objc Messa
 

infinyon node-bindgen Easy way to write native Node.js module using idiomatic Rust Features Easy: Just write idiomatic Rust code, node-bindgen take care of gen
 

neon-bindings Rust bindings for writing safe and fast native Node.js modules. Getting started Once you have the platform dependencies installed, getting started is