Skip to content

Learn unsafe Rust: Provide initial content for the chapter "ABI and FFI" #150

Open
@darkwisebear

Description

Todo

Provide initial content for the ABI and FFI chapter of the Learn unsafe Rust book.

Proposed content

  • Explain ABI and what "C ABI/FFI" actually means
    • What aspects of the ABI are defined by C and which aren't
    • How compilers and compiler settings influence the ABI
    • What aspects are influenced by the ABI
  • Explain unsafety categories in FFI
    • Mismatching calling conventions / padding (aka ABI)
    • Mismatching function signatures
    • Mismatching type declarations
    • Unsafe actions beyond the FFI boundary
    • Moveability/self-reference, especially with C++ move constructors
    • Ownership
    • C++ topics
  • Mitigations for FFI unsafety
    • Existing FFI tooling (bindgen, cbindgen, cxx)
    • Checks that can be done on FFI and Rust side
    • cRABI (?)

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions