Strange Loop

2009 - 2023

/

St. Louis, MO

Cap'n Proto and Rust: Type Systems for Sharing

In a world where software components are becoming ever more loosely-coupled and distributed, programmers need better mechanisms for managing interactions between them.

Cap'n Proto is a highly efficient protocol for sharing data and capabilities. Rust is a programming language with safe primitives for concurrency and low-level memory access. Together, Cap'n Proto and Rust make it easy to create fast, robust, and secure distributed systems that are correct by construction.

This talk will be an exposition of the Rust implementation of Cap'n Proto, aiming to be instructive on at least two levels. I will show how Cap'n Proto improves upon previous-generation data interchange systems such as Protocol Buffers and JSON. Simultaneously, I will show how Cap'n Proto's implementation in Rust improves upon its original C++ implementation. The broad answer on both levels is "with a better type system," and the details should interest anyone who writes distributed or concurrent programs.

David Renshaw

David Renshaw

sandstorm.io

David wrote the Rust implementation of Cap'n Proto and is leading development on the Java implementation. He has a background in math, programming languages, and formal verification, and has previously worked as a test engineer finding vulnerabilities in robotics software.