CoLaboratory: Rust #3. Лаборатория Касперского, 18 мая

• Михаил Панков • новости • поддержите на Patreon

лого

зарегистрироваться

Продолжаем нести знания людям. В этот раз у нас 3 доклада и много новостей, которые можно обсудить в кулуарах.

Расскажем про ООП в Rust, чтобы программисты, которые уже умеют в ООП, смогли лучше пользоваться тем, что есть в Rust. Там есть почти все привычные инструменты, но выглядят они по-другому.

Потом подробно поговорим про основы FFI — как передавать разные объекты из Rust и в Rust, кто будет ими владеть и чем отличается CStr и CString. Всё это нужно, если вы хотите взаимодействовать с Rust из кодобазы на других языках.

В завершение вечера поговорим о криптографических библиотеках в экосистеме Rust. Библиотеки, нацеленные на обеспечение безопасности, надо писать на безопасном языке.

Что касается новостей, Rust увеличил версию с 1.13 до 1.17. Прошедшие выпуски принесли поддержку многих новых целевых платформ, в том числе Emscripten для компиляции под браузеры. На 2017 заявлена инициатива по повышению эргономики языка, и уже видны первые её плоды — cargo check и много мелких улучшений удобства пользования языком. На пути к макросам 2.0 стабилизированы макросы типа «custom derive». serde достиг версии 1.0. Вышла альфа-версия Rust Language Server для поддержки IDE.

Приходите, будет интересно!

Программа мероприятия

18:30-19:00 — Регистрация участников, приветственный кофе.

19:00-19:10 — Вступительное слово (Михаил Панков).

19:10-20:00 — Есть ли ООП в Rust? (Михаил Панков, Лаборатория Касперского).

Многие начинают изучать Rust, уже зная объектно-ориентированные языки — такие, как C++ и Java. Я расскажу, как реализуются в Rust основные принципы ООП — инкапсуляция, сокрытие данных, наследование; какие с этим сложности, как их решать и когда как лучше реализовать наследование.

20:00-20:20 — Перерыв.

20:30-21:00 — Тонкости работы с FFI (Никита Баксаляр, MaidSafe).

На первый взгляд, экспорт функций из Rust для их использования в других языках через механизм FFI — задача простая. Однако на реальных проектах можно столкнуться со многими неочевидными вопросами и открытыми проблемами. Как передавать владение и как работает семантика заимствований при передаче данных «наружу»? Что такое drop flags и как освобождать память? Как обмениваться векторами, массивами и срезами? Как работать со строками и в чем разница между String, CStr и CString? В этом докладе будет представлено несколько ответов, найденных опытным путём при разработке библиотек с FFI-интерфейсом в компании MaidSafe.

21:00-21:30 — RustCrypto и другие криптографические проекты (Артём Павлов, СколТех).

Краткий обзор криптографических проектов: ring, openssl, rust-crypto, rustls, ed25519-dalek, macaroons, parity. Введение в RustCrypto: история, принципы и цели. Сложности с которыми пришлось столкнуться при разработке. Примеры использования.

Регистрация

Событие требует регистрации. Зарегистрироваться можно здесь.

Ждём вас! И обязательно расскажите о событии друзьям.

зарегистрироваться

Обновлено. Доступно видео докладов.

Есть ли ООП в Rust? Тонкости работы с FFI RustCrypto и другие криптографические проекты