9 Dec 2018
Efficient FFI bindings are one of the core features of Rust; however dereferencing raw pointers, conversion between Rust and C types, memory allocation, ..., all could possibly go wrong in FFI code and undermine the memory safety guarantee of Rust. The Rustonomicon and a few previous talks at RustFest discuss the topic of Rust FFI; but overlook the challenges in writing correct and safe FFI code. In this talk, we discuss a taxonomy of common pitfalls in Rust FFI with real-world examples. Moreover, we will review relevant principles and share our approach to effectively avoid the pitfalls.
https://rome.rustfest.eu/sessions/one-thousand-ways-to-die-in-rust-ffi
https://media.ccc.de/v/rustfest-rome-9-one-thousand-ways-to-die-in-rust-ffi
https://rome.rustfest.eu/sessions/one-thousand-ways-to-die-in-rust-ffi
https://media.ccc.de/v/rustfest-rome-9-one-thousand-ways-to-die-in-rust-ffi
- 4 participants
- 31 minutes
9 Dec 2018
Lately as a hobby I am participating to robotic competitions where autonomous robots fight according to various rules (usually speed races or Sumo fights). Lately I am putting Rust into every robot I program, from bare metal (arduino-like AVR and ARM Cortex-M), to Linux on higher level boards (Raspberry PI, Beaglebone), and even on a real time OS running on the Lego Mindstorm ARM-v5 CPU. In this talk I'll show embedded Rust programming in all of these environments, with a focus on getting things done!
https://rome.rustfest.eu/sessions/fun-with-rusty-robots
https://media.ccc.de/v/rustfest-rome-7-fun-with-rusty-robots
https://rome.rustfest.eu/sessions/fun-with-rusty-robots
https://media.ccc.de/v/rustfest-rome-7-fun-with-rusty-robots
- 5 participants
- 36 minutes
9 Dec 2018
A conflict-free replicated data type (CRDT) is a data structure that can be replicated, each replica can be updated independently and it is always mathematically possible to merge the replicas back without conflicts. The simplest CRDT is an _append only_ Set, where the _merge_ is the Set union, building upon this idea we can compose more complex data types. In this talk we will explore how to implement a `cli` for a CRDT shopping list, see how Traits are emerging during the code evolution, use cargo to include some useful crates with no pain, and document the code with runnable examples.
https://rome.rustfest.eu/sessions/simple-crdt-in-rust
https://media.ccc.de/v/rustfest-rome-10-simple-crdt-in-rust
https://rome.rustfest.eu/sessions/simple-crdt-in-rust
https://media.ccc.de/v/rustfest-rome-10-simple-crdt-in-rust
- 2 participants
- 19 minutes
9 Dec 2018
OpenPGP is best known for its use in email encryption. But, OpenPGP is, perhaps more importantly, used to secure software updates, sign commits, and protect backups.
Historically, OpenPGP has been hard for both end-users and developers to use--we know, we actually worked on GnuPG! In Sequoia, we are trying to change that. Sequoia is a new OpenPGP implementation that places as much emphasis on usability as on security.
Sequoia is also written in Rust. This talk will focus on the challenges that we've faced using Rust--infinite types, streaming iterators, designing a clean API--and our solutions.
https://rome.rustfest.eu/sessions/sequoia
https://media.ccc.de/v/rustfest-rome-6-sequoia
Historically, OpenPGP has been hard for both end-users and developers to use--we know, we actually worked on GnuPG! In Sequoia, we are trying to change that. Sequoia is a new OpenPGP implementation that places as much emphasis on usability as on security.
Sequoia is also written in Rust. This talk will focus on the challenges that we've faced using Rust--infinite types, streaming iterators, designing a clean API--and our solutions.
https://rome.rustfest.eu/sessions/sequoia
https://media.ccc.de/v/rustfest-rome-6-sequoia
- 3 participants
- 31 minutes
9 Dec 2018
If it's a mystery what actually goes on when you do a 'cargo run', then this talk is for you. It explores the sequence of steps taken to get to a working executable, from high-level code, to machine code, and what happens in-between. We'll do a simple example and see what each representation looks like, while touching on the steps in-between. In the end, we'll look at the generated RISC-V assembly.
https://rome.rustfest.eu/sessions/behind-the-scenes-of-producing-an-executable
https://media.ccc.de/v/rustfest-rome-8-behind-the-scenes-of-producing-an-executable
https://rome.rustfest.eu/sessions/behind-the-scenes-of-producing-an-executable
https://media.ccc.de/v/rustfest-rome-8-behind-the-scenes-of-producing-an-executable
- 2 participants
- 28 minutes
7 Dec 2018
Rust seems like a perfect candidate for scientific computing, building fast and efficient algorithms for scientific research and data science, but why isn't it there yet? Explore the state of scientific computing in Rust, from where it shines to it falls down, to where we can improve as a community, and learn about Rust in an area that has so much potential.
https://rome.rustfest.eu/sessions/rust-for-science
https://media.ccc.de/v/rustfest-rome-4-rust-for-science
https://rome.rustfest.eu/sessions/rust-for-science
https://media.ccc.de/v/rustfest-rome-4-rust-for-science
- 3 participants
- 16 minutes
7 Dec 2018
One of the secret ingredients in many successful, big code bases is that they found a good level of abstraction. One helpful technique is to write declarative code: You describe "what" you want to do, but don't mix it with the "how". While this is not specific to Rust, the language and its ecosystem help us write declarative code. This talk will go over some examples, covering famous crates and APIs as well as more obscure ones, to then dive into ways to use this to your advantage in your own code.
https://rome.rustfest.eu/sessions/declarative-programming-in-rust
https://media.ccc.de/v/rustfest-rome-5-declarative-programming-in-rust
https://rome.rustfest.eu/sessions/declarative-programming-in-rust
https://media.ccc.de/v/rustfest-rome-5-declarative-programming-in-rust
- 3 participants
- 33 minutes
7 Dec 2018
The magical thing about Rust is its ability to remove the fear of learning new things. My journey with Rust has led me to the world of hardware emulators - specifically old gaming machines from the 80s and 90s. Join me as we explore what it takes to implement a fully working Game Boy emulator. We'll take a look at the ins and outs of this 30 year old gaming wonder, learning a lot along the way about how computers and Rust work! By the end we'll have our emulator running in a web browser, a window on our Desktop and even a mobile phone!
https://rome.rustfest.eu/sessions/gameboy-emulator
https://media.ccc.de/v/rustfest-rome-3-gameboy-emulator
https://rome.rustfest.eu/sessions/gameboy-emulator
https://media.ccc.de/v/rustfest-rome-3-gameboy-emulator
- 2 participants
- 26 minutes
6 Dec 2018
On the eve of Rust 2018, we have so much to celebrate! From the core language to tools to community outreach to adoption, the Rust project has made enormous strides. But with success comes new challenges. Looking ahead to the next Edition of Rust, this keynote will lay out some of these challenges along three dimensions: Stakeholders, Governance, and Product. I'll pitch some personal ideas for how to grapple with these challenges, taking a frank look at what's working well and what needs to change, and inviting community-wide discussion as we go into our planning for next year.
https://rome.rustfest.eu/sessions/keynote
https://media.ccc.de/v/rustfest-rome-1-keynote
https://rome.rustfest.eu/sessions/keynote
https://media.ccc.de/v/rustfest-rome-1-keynote
- 4 participants
- 41 minutes
6 Dec 2018
In our new "Project Highlight" keynote format we selected an important, interesting and successful projects/initiatives and invite their leaders & contributors to talk about their work, experiences, and the things they have learned along the way to benefit the larger Rust community.
In Rome Alan Kavishe and Lee Baillie will be presenting the Increasing Rust's Reach (http://reach.rust-lang.org/) project highlight.
https://rome.rustfest.eu/sessions/project-highlight
https://media.ccc.de/v/rustfest-rome-11-project-highlight
In Rome Alan Kavishe and Lee Baillie will be presenting the Increasing Rust's Reach (http://reach.rust-lang.org/) project highlight.
https://rome.rustfest.eu/sessions/project-highlight
https://media.ccc.de/v/rustfest-rome-11-project-highlight
- 2 participants
- 19 minutes
6 Dec 2018
This talk will focus on some of the challenges encountered while working on integrating SpiderMonkey JavaScript engine with the Servo web browser engine (written in C++ and Rust, respectively). We will explore how Rust's rich type system made it possible to enforce many Servo–SpiderMonkey interface rules and safety considerations at compile time and how a custom compiler plugin was developed to verify against project-specific errors at a language level.
https://rome.rustfest.eu/sessions/caging-the-spidermonkey
https://media.ccc.de/v/rustfest-rome-2-caging-the-spidermonkey
https://rome.rustfest.eu/sessions/caging-the-spidermonkey
https://media.ccc.de/v/rustfest-rome-2-caging-the-spidermonkey
- 1 participant
- 27 minutes