CoLaboratory: Rust #3. Лаборатория Касперского, 18 мая
Продолжаем нести знания людям. В этот раз у нас 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 и другие криптографические проекты