Module show_notes::e031

source ·
Expand description

FFI Deep Dive

  • Date: May 11, 2019
  • Subject: Exposing Rust types and functions to C API consumers.
  • download mp3
  • script

§Show Notes

It’s impossible to make the declarations below follow the order I talked through them on the recording without also making them horrible to read, so just use this outline instead:

  1. add_in_rust
  2. Strings
    1. concat_strings
    2. free_rust_string
  3. Point
    1. point_translate
  4. union
  5. OpaquePoint
    1. opaque_point_new
    2. opaque_point_translate
    3. opaque_point_free


Thanks to Parity for sponsoring the show and hiring Rust developers!

§Patreon Sponsors

(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!)

§Become a sponsor



  • Demonstrate unions! Combines an enum and a union into a struct that acts mostly like a regular Rust enum.


  • A struct identical to Point, but which is not #[repr(C)]!
  • A simple struct which we can expose to a C API. Note that it is #[repr(C)]!
  • e031: FFI Deep Dive!