Getting into the Rusty Bucket: Lessons from Integrating Rust with Existing C

Presented by William Brown
Friday 1:20 p.m.–2:05 p.m.
Target audience: Developer

Abstract

Rust is a modern language developed by Mozilla pursuing the trifecta: Safety, Speed, and Concurrency. With such promise for the future, how can we use this now? We are not always in the beautiful open green fields; we must contend with our existing grunty applications!

389 Directory Server is based on code now more than 20 years old. We cannot throw this out and replace it, but we want the benefits Rust gives us - especially for authentication and security critical code.

We will explore the challenges of security in engineering, and behaviours of the modern programmer. I will discuss why we have spiraled down a mountain of failure as an engineering discipline - and why we need tools like Rust to validate our work. I will explore the Directory Server plugin interface, where we have the ability to provide pure Rust plugins, allowing safe, fast extensibility to a core piece of systems authentication. This will explore the challenges to build it, and the design patterns needed in C, to make sure that the integration between Rust and C is possible today, leading towards a future rewrite.

Presented by

William Brown

William is a Software Engineer for Red Hat, specialising in Identity Management and security software. He is a software engineer on the 389 Directory Server core team - which is used globally for authentication by some of the worlds largest companies.

©2016 Linux Australia and linux.conf.au 2017. Linux is a registered trademark of Linus Torvalds. Site design by Takeflight. Image credits can be found on our Colophon.