Rust Programming Language / Integrating Rust

Add meeting Rate page Subscribe

Rust Programming Language / Integrating Rust

These are all the meetings we have in "Integrating Rust" (part of the organization "Rust Programming Lan…"). Click into individual meeting pages to watch the recording and search or read the transcript.

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
  • 4 participants
  • 31 minutes
rustom
project
meta
reference
communicate
missile
complicated
lab
inka
managed
youtube image

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
  • 1 participant
  • 27 minutes
spidermonkey
servo
spider
browser
annotation
helper
project
safety
implicitly
integrate
youtube image

8 Nov 2018

https://media.ccc.de/v/rustcologne.2018.10.wayland



I’ll take some time to explain what is Wayland and why it’s here to stay.
Then, I’ll give a high level overview of the state of Rust on Wayland:
how to write servers and clients, and how far along we can get with Rust.
I want to focus on Smithay projects, and wlroots-rs.



Dorota
  • 4 participants
  • 1:47 hours
protocol
weyland
presently
concerning
introduced
discussion
knowwe
future
users
language
youtube image

11 Sep 2018

RustConf 2018 - Embedding Rust in C/C++ by Katharina

We all know that using C/C++ code in Rust is not too complicated. extern "C", bindgen and build.rs scripts make this pretty easy. But let’s challenge ourselves: what about the other way around? There are huge C and C++ projects that could use some corrosion.

In this talk I will not just show simple examples of how to use Rust modules inside larger C/C++ applications, the common pitfalls you will encounter, and to deal with them.
  • 1 participant
  • 31 minutes
rust
logical
conversation
cons
ffa
dereferencing
workshops
interface
struct
llvm
youtube image

6 Sep 2018

RustConf 2018 - C2Rust: Migrating Legacy Code to Rust by Per Larsen

Although Rust is safer and more modern than C/C++, it is still difficult to justify the cost of migrating existing, mature systems code.

This talk will present a trifecta of tools to address the costs and risks of such migration efforts. The first tool is a transpiler which generates structurally equivalent-yet-unsafe Rust code from the input C code. The second is a dynamic analysis tool which runs the original C code alongside the new Rust code to check whether they are performing the same computations. The third is a refactoring tool which helps programmers idiomize the output of our transpiler.

Our aim is to automate many of the steps that are entirely manual when migrating from C to Rust today. However, we do not expect that the migration process will be fully automatic. Therefore, we focus on detecting unexpected discrepancies as the programmer gradually rewrites the transpiled code to make better use of Rust idioms. Our tools are open source and available to anyone.

Additional resources:

Code: https://www.github.com/immunant/c2rust
Demo: https://www.c2rust.com
Slides: https://www.ics.uci.edu/~perl/rustconf18_c2rust.pdf
Writeup: https://galois.com/blog/2018/08/c2rust/
  • 1 participant
  • 28 minutes
researchers
rust
disclaimer
warning
immune
faq
security
c4
supporting
conveniens
youtube image

6 Sep 2018

RustConf 2018 - Integrating Rust into Tor: Successes and Challenges by Isis Lovecruft & Chelsea Komlo

In 2016, The Tor Project's network team decided to experiment with writing existing and new functionality in Rust. Since then, this experiment has turned into a team initiative, with multiple team members adding infrastructure and new functionality with the goal of integrating Rust components directly into the core Tor code base. By 2019, we will have several features tha will be only supported in Rust.

With this effort has come many challenges and questions, some which have remained unresolved. In this talk, we propose walking through this timeline, and sharing what we have learned, what was good, and what was challenging about integrating Rust into a 10+ year old security-critical C codebase. We will also offer ideas about what could make this easier going forward, and what we are excited and hoping to see in future Rust versions. Overall, we at The Tor Project are big fans of Rust. We are looking forward to sharing what we have learned and accomplished over the last two years.
  • 2 participants
  • 30 minutes
tor
discussions
talking
cryptography
hi
aren
relays
platforms
introduction
going
youtube image

4 Aug 2018

Last year I gave a talk on *why* it was desirable to port librsvg from C to Rust. That talk showed cool things about the Rust language, mostly centered around expresiveness and memory safety.

This time, I want to show you *how* the librsvg team (we have a team now!) has been doing the port, gradually, steadily, without breaking client applications. We will present common patterns that show up when refactoring C to make it easy to port to Rust. We'll show how the first pass at Rustification works, but it is ugly - but how a second pass can turn it into beautiful, idiomatic Rust code. We'll show how C code with no error handling can be turned into Rust code that checks and propagates errors thoroughly.

The hope is to show that we can give the low-level GNOME platform another 20 years of life by porting it to a better low-level language.

CC BY-SA 4.0
  • 1 participant
  • 39 minutes
libera
libros
hey
vigi
threads
liveries
ported
rusts
gitlab
genome
youtube image

28 May 2018

A Mozillian and Rustacean by heart,
Henri Sivonen got a great start
porting Firefox' char
handling to Rust, so far
it's been quietly doing its part

In Firefox 56, the encoding_rs character encoding conversion crate replaced Firefox’s previous encoding conversion library that was written in C++. This talk examines the API design characteristics that allowed the Rust API of encoding_rs to be mapped to an idiomatic C API and how it was possible to re-create an almost exact modern C++ analog of the Rust API on top of the C API. Rather than trying to cover the mapping of an arbitrary Rust API to C++, this talk focuses on patterns that are easy to map to C++ to help others to aim for such patterns when bringing Rust to C++ code bases.

(Limerick by @llogiq)

https://paris.rustfest.eu/sessions/rust-crate-as-a-cpp-library
  • 2 participants
  • 31 minutes
decoding
encoding
firefox
charset
ffi
mozillian
compiler
rust
typesafe
struct
youtube image

28 May 2018

Yu Ding from Baidu X Labs today
is securely joining the fray
to rust'ly enclave
your bits to behave
that's a big deal for securitay

In this talk, we introduce Rust SGX SDK (future code name MesaLock SGX), which can protect secrets from most attacks by combining the power of Intel SGX and Rust. Intel SGX is the next generation trusted computing technique supported in almost all recent Intel CPUs. It provides strong security guarantees and uses a completely different os/threading model, but lacks memory safety guarantees. We show how we ported Rust std and a series of fundamental and popular Rust crates into the Rust-SGX world. What’s more, we support Xargo by providing a new target platform as x86_64-unknown-linux-sgx.

(Limerick by @llogiq)

https://paris.rustfest.eu/sessions/mesalock-sgx
  • 2 participants
  • 35 minutes
security
uding
rust
mechanisms
sgx
handling
syscall
ai
access
supports
youtube image

6 Feb 2018

An introduction to Neon

There's always some use cases where you need a systems language inside your node.js application. Neon is Rust bindings for writing safe and fast native Node.js modules. This talk is mainly about Neon, I'll go through the current state of project, a few examples, problems and also the future of the project.

I'm a software engineer with a web development background and a hint of DevOps.

Rust devroom @ FOSDEM 2018
https://fosdem.org/2018/schedule/event/rust_nodejs_neon/

These talks have been recorded at FOSDEM (https://fosdem.org/)
This work is licensed under the Creative Commons Attribution 2.0 Belgium Licence.
To view a copy of this licence, visit http://creativecommons.org/licenses/by/2.0/be/deed.en
  • 2 participants
  • 24 minutes
nodejs
node
application
compiler
npm
script
neon
binaries
nyan
export
youtube image

6 Feb 2018

Making the unsafe safe

The goal of this talk is to provide an introduction to the gtk bindings in Rust through the gtk-rs organization. It'll be mainly about how we made it and how we keep making it better.

Rust devroom @ FOSDEM 2018
https://fosdem.org/2018/schedule/event/rust_gtk_rs/

These talks have been recorded at FOSDEM (https://fosdem.org/)
This work is licensed under the Creative Commons Attribution 2.0 Belgium Licence.
To view a copy of this licence, visit http://creativecommons.org/licenses/by/2.0/be/deed.en
  • 3 participants
  • 21 minutes
started
glom
tk
compiler
documentation
developing
gtk
repository
duty
unsafely
youtube image

6 Feb 2018

Rust Qt Binding Generator

Build a graphical application with Qt and Rust. Qt is a mature GUI library. Rust is a new, exciting and strict programming language. You can build most of your application logic in Rust and write the GUI in QML or Qt Widgets.

This talks will walk through how to do this with Rust Qt Binding Generator.

Jos van den Oever represents the Dutch government on the ODF Technical Committee. He has worked in the Free Software community for over a decade. He created WebODF, an ODF editor for the browser. He is active in the KDE community.

Rust devroom @ FOSDEM 2018
https://fosdem.org/2018/schedule/event/rust_qt_binding_generator/

These talks have been recorded at FOSDEM (https://fosdem.org/)
This work is licensed under the Creative Commons Attribution 2.0 Belgium Licence.
To view a copy of this licence, visit http://creativecommons.org/licenses/by/2.0/be/deed.en
  • 2 participants
  • 27 minutes
cute
cutes
widgets
ugly
apps
functionality
demo
developers
cue
presenting
youtube image

6 Feb 2018

Fast, safe and productive multimedia software

GStreamer is a highly versatile, cross-platform, plugin-based multimedia framework that caters to the whole range of multimedia needs. It can be used basically everywhere, from embedded devices like phones, TVs or drones to desktop applications or on huge server farms.

This talk will focus on how and why Rust looks like the perfect programming language for evolving GStreamer and provide a safer but still performant and even more productive development environment than C. Both GStreamer application development in Rust, and GStreamer plugin development will be covered. What is possible today already, for which applications can Rust be perfectly used already and which parts are still missing? How does it feel like to write an application in Rust compared to doing it in C? And how and why would one write GStreamer plugins in Rust to extend the framework and all applications with support for new codecs, filters or anything else?

Afterwards there will be a short outlook into the future of Rust in the GStreamer project itself and for GStreamer application and plugin development.

Sebastian Dröge (slomo) is a Free Software developer and one of the GStreamer maintainers and core developers. He has been involved with the project since more than 10 years now. He also contributes to various other Free Software projects, like Debian, Rust, GNOME and WebKit. While finishing his master's degree in computer sciences at the University of Paderborn in Germany, he started working as a contractor for GStreamer and related technologies. Sebastian is one of the founders of Centricular, a company providing consultancy services, where he's working from his new home in Greece on improving GStreamer and the Free Software ecosystem in general.

Apart from multimedia related topics, Sebastian has an interest in digital signal processing, programming languages, machine learning, network protocols and distributed systems.

Rust devroom @ FOSDEM 2018
https://fosdem.org/2018/schedule/event/rust_gstreamer/

These talks have been recorded at FOSDEM (https://fosdem.org/)
This work is licensed under the Creative Commons Attribution 2.0 Belgium Licence.
To view a copy of this licence, visit http://creativecommons.org/licenses/by/2.0/be/deed.en
  • 2 participants
  • 27 minutes
gstreamer
streamer
streaming
tooling
gcm
centric
steam
helper
platform
consultancy
youtube image

6 Feb 2018

Safe Language Meets Safe Microkernel

Rust is a modern systems programming language with compiler-enforced memory-safety guarantees, safe concurrency and a powerful type system. L4Re offers safety features on the operating system level through isolation and virtualisation. Both together can form a unique combination for reliable and secure services. In this talk, I will present my port of Rust to L4Re and discuss some of the challenges of integrating the compiler Rustc into a different build system. I will also discuss future work on how to apply Rust's strong type system to L4Re IPC.

Microkernels Devroom @ FOSDEM 2018
https://fosdem.org/2018/schedule/event/microkernel_l4re_rust/

These talks have been recorded at FOSDEM (https://fosdem.org/)
This work is licensed under the Creative Commons Attribution 2.0 Belgium Licence.
To view a copy of this licence, visit http://creativecommons.org/licenses/by/2.0/be/deed.en
  • 2 participants
  • 23 minutes
60
1st
excellent
today
racing
sánchez
waits
virtues
smooth
guaymas
youtube image

23 Nov 2017

Valentin Gosu will show us how it all started, how the first bits of Rust landed in Firefox and the monumental work that led up to Rust components shipping in the live production version of the newest Firefox for anyone out there to see.

Slides: https://slides.com/valentingosu/oxidation-budapest-2017

[Rust Hungary Meetup #3, 2017-11-23, Mozilla Hungary Community Space, Budapest]
http://rust-lang.hu/posts/2017-11-22/meetup-03-rust-hungary.en.html
https://www.meetup.com/Rust-Hungary-Meetup/events/244411460/
  • 3 participants
  • 29 minutes
firefox
mozilla
oxidation
rust
thread
connectivity
wiki
project
hungary
gecko
youtube image

5 Nov 2017

Do you need to perform a certain task in Rust? Why not pick a mature C library that already does what you want, and write a wrapping library around it?

Writing a wrapping library is sometimes not as easy as one could think, and you will probably make mistakes that will make you lose time or even make your wrapper unsound.

This talk will show you the most common safety problems you may not have thought of, such as leak safety, but will also give you advices on what not to do when designing the API of your library.

About Pierre Krieger:
After coding in C++ for about ten years, Pierre switched to Rust in 2014 and has been maintaining several game-development-related libraries. He specializes in graphics programming.
  • 3 participants
  • 35 minutes
problems
mistakes
bug
wrapper
rust
dangerous
handling
wild
repository
compile
youtube image

13 May 2017

GStreamer is a highly versatile, cross-platform, plugin-based multimedia framework that caters to the whole range of multimedia needs. It can be used basically everywhere, from embedded devices like phones, TVs or drones to desktop applications or on huge server farms.

In this talk we will discuss how Rust is the perfect match for GStreamer to evolve from its C roots and safely enter the future. Be it for application development on top of GStreamer or for the development of plugins, where the actual media processing is happening. We will give an overview of the current status of getting Rust and GStreamer working together, our experience with Rust so far, what problems we ran into and what is already possible today. In the end we will give an outline of our ideas how to evolve from here, what the next steps are on the way to world domination.

And who knows, maybe in the future we will have a GStreamer completely written in Rust?

Sebastian Dröge
https://twitter.com/sdroege_
https://github.com/sdroege
https://users.rust-lang.org/users/slomo/activity

Luis de Bethencourt
https://twitter.com/luisbg
https://github.com/luisbg
https://users.rust-lang.org/users/luisbg/activity
  • 2 participants
  • 30 minutes
gstreamer
streaming
conferencing
users
multimedia
software
speakers
apparently
great
sebastian
youtube image