Rust is a modern system programming language with a powerful type system. It protects against many common programming errors, such as using freed up memory and data races. These problems in Rust show up immediately during compilation! At the same time, the language does not use garbage collection, which means it has predictable performance, can be easily integrated into other languages, and is excellent for embedded programming. At Rust you can write reliable, high-performance multi-threaded programs.
A year ago, the first stable version of the language was released - Rust 1.0. Since then, the language has been actively developed. Yesterday nobody knew about Rust, and today Dropbox rewrote the core of its disk infrastructure on it.
On the evening of May 17, we will gather at the Moscow office of Kaspersky Lab to talk about 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 that can soon replace the usual tools, whose positions now seem to be unshakable.
18:00 - 18:30 Registration of participants.
18:30 - 18:40 Start 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 be a replacement for C ++, because it solves C ++ problems in working with memory (use after free, double free, buffer overrun, etc.) and with multithreading while providing the same possibilities for writing fast code.
The Rust syntax is nice, the standard library is well designed, and the Rust type system has gone far ahead of C ++, where virtual methods are separate, templates are separate, and where for each type of parameter 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) the part of the type system that guarantees safe work with memory — lifetimes, borrowed pointers, Sync / Send, and so on. In my opinion, this is the most important, the most difficult and the most interesting thing in Rust.
19:40 - 20:30 Multithreading and concurrency in Rust. Nikita Baksalyar.
Why multithreading and concurrency are needed, and why this is important. What approaches were used in Rust, and what came to the end.
Safe access to data, or what is the state of racing, deadlock, and how we can avoid these problems Rust with the help of basic language constructs.
Alternative approaches to multithreading: MPSC and messaging, lightweight processes, actors, and Cortina.
20:30 - 20:50 Coffee break
20:50 - 21:40 Practice of developing web servers on Rust. Mikhail Pankov.
Rust allows you to write fast and reliable programs. Especially when they are multi-threaded. This makes it a good choice for writing server side of various web applications.
But what is needed for this? Why endure all these long mistakes from the borrow checker? What about development productivity? Where to get the library? And 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 will also tell you what to do to get around the problem areas that Rust, of course, also has.
All this is illustrated by the code of the infrastructure server that provides “always green master” (commit gatekeeper, analogue of homu and zuul).
21:40 - 22:10 Rust FFI on the example of expanding the data structure from Haskell.
Alexander Vershilov.
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 particularly demanding of solution efficiency. This report will examine the possibility of using Rust in a Haskell project.
Usually in such cases a bundle with C is used, but since Rust provides more guarantees, it can occupy this niche.
In the report, we will look at the basics of FFI in Rust, and show how to write projects that use 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 .
Waiting for you! And be sure to tell your friends about the event.
Source: https://habr.com/ru/post/283202/
All Articles