# RustNL 2024 CFP
## What will the title of your talk be?
compression carcinized: implementing zlib in rust
## Can you give us a short summary of your talk
Data compression is used when loading almost anything on the web. This talk is about the implementation of zlib-rs. We'll explore how compression works, how to convert a C project to rust, how to maintain its performance, and how to foster adoption.
## Can you give us a longer description of what you are going to talk about
1. basics of deflate compression: what makes this a computationally hard, but interesting problem
2. porting C to rust: zlib is ported manually. Our earlier projects (sudo-rs, ntpd-rs) were much more from-the-ground-up projects. we've also been working a bit with automatic conversion from C to rust with `c2rust` (in the context of https://github.com/memorysafety/rav1d). We will go into the tradeoffs of the various porting techniques.
3. performance: Compression is incredibly performance-sensitive. Rust is fast, but its safety can come at a cost. How do we track performance effectively to ensure that it does not regress? what (unsafe) tricks do we have to pull to get the assembly/performance that we want? I think this section will touch on tail calls too.
4. adoption: zlib-rs is still young, and unlikely to get much adoption before May. Furthermore the zlib adoption story is particularly tricky because if we're doing our job right our implementation is indistinguishable from the C version. But we've been running this sort of open-source rust projects for a while and will talk about funding, how to convince users, getting accepted into debian/fedora, etc.
## Can you tell us a bit about yourself?
At Tweede Golf I mostly work on using rust in critical infrastructure, e.g. time synchronization, secure communication and data compression.
Additionally I work on the roc compiler (roc-lang.org), which is an excellent excuse to play around with academic compiler literature, linkers and assembly.
### Earlier talk links
- NTP for the modern era (RustNL 2023) https://www.youtube.com/watch?v=4yb9RxFd55E
- NTP for the modern era (Gosim 2023) https://www.youtube.com/watch?v=p_zC5zSRRng
- 10x faster (rust meetup, Delft) https://www.youtube.com/watch?v=FCVfofYsWHU
https://cryptpad.fr/form/#/2/form/view/WtBXS48XjwAvYXIjhgEY6yJ0EOpULX+zByvkHds2oUA/