CoLaboratory: Rust - talk about Rust at Kaspersky Lab on May 17
Rust is a modern system programming language with a powerful type system. It protects against many common programming errors, such as using freed memory and data race. These problems are detected in Rust immediately during compilation! At the same time, the language does not use garbage collection - which means it has predictable performance, is easily integrated into other languages, and is great for embedded programming. You can write reliable, high-performance multithreaded programs on Rust.
A year ago, the first stable version of the language, Rust 1.0, was released. Since then, the language has been actively developing. Yesterday no one knew about Rust, but today Dropbox rewrote the kernel of its disk infrastructure on it.
In the evening of May 17, we will gather at the Moscow office of Kaspersky Lab to talk about the theoretical and practical aspects of using Rust, its ecosystem and tools, share experience in writing programs on it, and also consider common problems and ways to solve them.
Do not miss! CoLaboratory: Rust is a chance to learn about a promising programming language, which can soon replace the usual tools, whose positions now seem unshakable.
18:00 - 18:30 Registration of participants.
18:30 - 18:40 Beginning of the meeting. Welcome words.
18:40 - 19:40 Rust is better than C ++. Stepan Koltsov.
Rust is a modern, practical, convenient, fast and secure programming language with a good type system.
Rust should become a replacement for C ++, since it solves C ++ problems in working with memory (use after free, double free, buffer overrun, etc.) and with multi-threading, at the same time providing the same opportunities for writing fast code.
The Rust syntax is nice, the standard library is well designed, and the Rust type system has gone far ahead compared to C ++, where virtual methods are separate, templates are separate, and where for each parameter type the template is instantiated again. But my story is not about that.
In my story I will describe in detail (as much as possible in one hour) that part of the type system that guarantees safe working with memory - lifetimes, borrowed pointers, Sync / Send, and more. In my opinion, this is the most important, most complex and most interesting thing that Rust has.
19:40 - 20:30 Multithreading and concurrency in Rust. Nikita Baksalyar.
Why multithreading and concurrency are needed, and why it is important. What approaches were used in Rust, and what did they end up with.
Safe access to data, or what is the state of races, deadlocks, and how does Rust get rid of these problems with the help of the basic language constructs.
Alternative approaches to multithreading: MPSC and messaging, lightweight processes, actors and coroutines.
20:30 - 20:50 Coffee Break
20:50 - 21:40 Practice developing web servers in Rust. Mikhail Pankov.
Rust allows you to write fast and reliable programs. Especially when they are multithreaded. This makes it a good choice for writing the back end of a variety of web applications.
But what is needed for this? Why put up with all these long mistakes from a borrow checker? What about development productivity? Where to get the libraries? But what if there is no library? Which web framework to choose? How to debug and profile code?
In my report I will answer these and other questions. I’ll also tell you what needs to be done to get around the problem areas that Rust, of course, also has.
All this is illustrated by the example of the infrastructure server code that provides the “always green master” (commit gatekeeper, analogue of homu and zuul).
21:40 - 22:10 Rust FFI as an example of expanding the data structure from Haskell.
Rust is a fast and reliable language without a garbage collector, which allows it to be used in projects written in other languages, in places that are particularly demanding on the effectiveness of the solution. This talk will discuss the use of Rust in a Haskell project.
Usually in such cases, a link to C is used, but since Rust provides more guarantees, it may occupy this niche.
In the report, we will look at the basics of FFI in Rust, and show how to write projects using Rust and Haskell at the same time and discuss other related issues.
Event requires registration. You can register here .
We also have a group on Facebook .
We are waiting for you! And be sure to tell your friends about the event.