Brussels / 3 & 4 February 2018


Introducing gtk-rs

Making the unsafe safe

The goal of this talk is to provide an introduction to the gtk bindings in Rust through the gtk-rs organization. It'll be mainly about how we made it and how we keep making it better.

  • Presentation of gtk-rs (before it was even an organization)
    • Beginning: rust <-> C direct binding, no indirection, almost no safety
    • Generation of signals through (old) macro system
    • Old closures system to allow callbacks
    • Short (old) code demonstration
  • Creation of gtk-rs
    • multi-repository
    • easier to maintain, more difficult to release
    • licensing issues: keeping docs in their own repository and write a tool to put it back
  • New gtk-rs era: automatic generation
    • GIR crate
    • Parsing gir files and automatically generate as much as possible
    • Presentation of the crate, how it works and the hierarchy
    • A lot of things are simplified: doc generation, website, releases
  • gtk-rs growth
    • more members
    • (semi) automatic release process
    • a lot more of bindings (sourceview, pangocairo, webkit...)
  • gtk-rs environment
    • a few projects (process viewer, EDI, tools...)
    • relm crate to easily write GTK UIs
    • GNOME-class
    • gstreamer-rs
  • Future of gtk-rs
    • async
    • tutorials
    • more projects
    • more rust in GNOME libraries (librsvg already started this port)


Guillaume Gomez