Antonio Verardi, Flavien Raynaud - How to write Rust instead of C, and get away with it yes, it's a

Conference: EuroPython 2018

Year: 2018

How to write Rust instead of C, and get away with it (yes, it's a Python talk) [EuroPython 2018 - Talk - 2018-07-25 - Lammermuir] [Edinburgh, UK] By Antonio Verardi, Flavien Raynaud Have you ever tried optimizing a super-slow Python application and thought: “Oh! I wish I could just write this bit it in Rust”? Well, turns out you can! We will show you how Rust is a better alternative than C to make your programs lightning fast, and how to get away with it; without your users even noticing. As Infrastructure Engineers at Yelp, the challenge we face everyday is: scale. Yelp is mostly a Python shop and while this is great for development velocity, our work often revolves around making Python applications run faster. Until now, we have been using different techniques: faster interpreters, or, more often, C code. Given its safety guarantees, performance and promise of better tooling than C, we decided we had to give Rust a try. The initial results helped reinforce that there was a lot of opportunity for Rust to play an important role in our production code. Yelp heavily relies on the Apache Avro (https://avro.apache.org/) serialization format for its internal infrastructure. During the talk, we will show how we implemented an Avro serialization/deserialization library in Rust, how we were able to call it from Python (and in theory from any other language) with very little code, using tools such as cbindgen (https://github.com/eqrion/cbindgen/), CFFI (https://cffi.readthedocs.io/en/latest/) and Milksnake (https://github.com/getsentry/milksnake/). This talk would outline how easy it is to write performant code in a language like Rust and call it from Python applications without users even realizing it, making this a great solution for production services. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/