Программа - RustRush 2018

Кейноут

Эшли Уильямс 🔗

Эшли - участник Rust Core Team, ведущий crates.io Team и Rust Community Team. Она - директор проекта Increasing Rust's Reach, главный инструктор RustBridge, и участник рабочей группы Rust/WebAssembly. Раньше Эшли работала в npm в роли Registry Engineer, и была в совете директоров Node.js. Она - основатель Community Comittee, приглашённый эксперт TC-39, а также основатель и ведущий инструктор в NodeTogether.

Воркшоп по Rust/WASM

Стив Клабник 🔗

Стив - главный в команде документации проекта Rust. Он работает в Mozilla. Стив - частый докладчик на конференциях и активный участник open source-проектов. Раньше он работал над Ruby и Ruby on Rails.

Подход Rust: как делать вещи правильно

Паскаль Хертляйф 🔗

Паскаль - ведущий рабочей группы CLI в проекте Rust. Он - автор и участник многих крейтов. Также Паскаль - соорганизатор митапа Rust Кёльн.

Этот доклад - про то, как Rust не изобретает ничего нового. Сам Rust - думаете, это какое-то изобретение? Нет. Он позаимствовал (игра слов) многое из таких языков, как Cyclone и ATS, и это задало тон для всего сообщества. Не руководствуйтесь правилом "Not Invented Here". Лучше возьмите что-то из другой экосистемы, что-то академическое, какую-то хорошую, но неудобную библиотеку, доработайте их для массового применения всеми - и вы в шоколаде!

История async и его будущее

Катарина Фей 🔗

Катарина активно пишет на Rust с 2017 и является автором многих крейтов. Она - участник рабочей группы CLI, а её основная область ответственности - эргономика разработчиков.

Асинхронное сетевое программирование вызывает большой интерес. И сообщество Rust - не исключение. Хорошая поддержка асинхронности важна, особенно учитывая растущую популярность языка в разработке сетевых приложений и распределённых систем. Это было целью рабочей группы Networking для Rust 2018. И хотя не все цели для выпуска в конце года были достигнуты, были сделаны существенные изменения и в основе синтаксиса, и в экосистеме. В этом докладе мы рассмотрим и уже сделанные вещи, и то, что ещё только запланировано.

Libp2p, библиотека для peer-to-peer сетей

Пьер Кригер 🔗

Пьер - программист на Rust в Parity. Ранее он работал над программированием графики, включая несколько крейтов для Vulkan и OpenGL. Сейчас он занимается peer-to-peer сетями.

Библиотека libp2p - это реализация протокола libp2p на Rust. Изначально этот протокол разработали в Protocol Labs. Библиотека основана на futures и tokio, и позволяет легко создать децентрализованную peer-to-peer сеть. Этот доклад познакомит вас с основными понятиями peer-to-peer сети, и с тем, как использовать libp2p.

Разработка безопасных и защищённых систем на Rust

Миньсу Сэн 🔗

Миньсу - старший исследователь безопасности в Baidu X-Lab, Baidu USA. Он получил степерь доктора философии в области компьютерных наук и инженерии в Китайском Университете в Гонконге. Его интересует решение проблем безопасности, которые можно встретить в мобильных устройствах, системах Интернета Вещей и автомобилях. Он поддерживает и активно участвует в нескольких проектах на Rust с открытым исходным кодом - MesaLock Linux, MesaPy и YogCrypt.

Rust создавался как системный язык программирования, который быстро работает и гарантирует безопасность памяти. Однако, разработать безопасную и защищённую систему - это не "просто написать её на Rust". Есть много трудностей - с самим языком, с unsafe, FFI, и системами, где используется гибридная модель памяти. В этом докладе мы обсудим эти проблемы в контексте защищённости. Мы рассмотрим сложности и решения, на примерах из жизни. В конце мы обсудим вопросы, требующие решения.

После блокчейна: PARSEC, алгоритм консенсуса следующего уровня, на Rust

Пьер Шевалье 🔗

Пьер - программист на Rust и главный в команде Routing в Maidsafe. Он один из со-изобретателей алгоритма PARSEC - протокола консенсуса следующего поколения. Теперь он поддерживает его разработку сообществом.

PARSEC - изобретённый в 2018 революционный алгоритм; это масштабируемая и математически доказанная альтернатива консенсусу в условиях отсутствия доверия. Это открытый код на Rust. Со-изобретатель Пьер расскажет про него всё!

Прозрачное подтверждение записей данных в блокчейне

Роман Широченко 🔗

Роман - программист на Rust в Bitfury, ведущий разработчик в команде Exonum Russia. Они разрабатывают блокчейн-приложения на фреймворке Exonum. У Романа большой опыт в создании и интеграции коммерческих и правительственных решений на блокчейне.

Exonum — это блокчейн-фреймворк для разработки приватных блокчейн-приложений. Фреймворк написан на Rust, который позволяет делать безопасные приложения.
Блокчейн — это технология, которая позволяет добавить в распределенные базы данных независимый аудит и валидацию информации.
В Exonum используется «механизм подтверждения», основанный на криптографических доказательствах, построенных с помощью деревьев Merkle и Merkle Patricia. Этот механизм позволяет клиенту самостоятельно проверить, что данные, которые пришли в ответе от полного узла, подтверждены большинством валидаторов сети.
Из доклада вы узнаете, как мы разработали merkelized коллекции Exonum и какие инструменты обеспечивают аудит в случае интеграции с веб-приложениями. Доклад будет построен на примере блокчейн-аукциона.

Прикладная криптография на чистом Rust

Артём Павлов

Артём - основатель проекта RustCrypto, сейчас поддерживает его. Аспирант Сколковского института науки и технологий. Интересуется криптографией и робототехникой.

Этот воркшоп покрывает следующие темы:
‣ Хэш-функции: вычисление хэшей (SHA-256 и BLAKE-2b) содержимого файлов, вычисление хэшей заданной длины с помощью SHA-3 XOF.
‣ Алгоритмы вывода ключей на основе пароля: pbkdf2 и argon2.
‣ Блочные шифры и блочные режимы: сравнение ECB и CBC, отступы.
‣ Поточные шифры: режим CTR, XSalsa20.
‣ MACи: HMAC, Poly1305, PMAC; обобщённая реализация конструкции Encrypt-then-MAC.
‣ AEAD и MRAE: AES-CTR-GCM и AES-CTR-PMAC-SIV.
‣ Криптография с открытым ключом: ed25519 и x25519.
Участники получат крейты-шаблоны, и им нужно будет завершить их разработку, используя обозначенные крейты на Rust. В качестве итогового задания участники реализуют простейший GPG-подобный инструмент для шифрования файлов.

Pest: Разработка языкового сервера с поддержкой Language Server Protocol

Виктор Лопез

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

Чтобы создать языковой сервер, нужен очень надёжный парсер и эффективный фреймворк JSON/RPC.
Виктор расскажет, как он использовал Pest (основанный на PEG) в качестве парсера, и решение Parity в качестве JSON/RPC интерфейса.
В данный момент проект находится в стадии бета-тестирования; ожидается порядка 10 тысяч пользователей.

Разработка DSL на макросах для работы с API VK.com

Константин Степанов 🔗

Константин - энтузиаст Rust, докладчик и бывший организатор сообщества в Минске. Он поддерживает несколько крейтов.

Асинхронные неблокирующие код-ревью

Фрэнк Коорнстра 🔗

Фрэнк - бэкенд-разработчик в прекрасной команде Usabilla, одержимый идеей создания идеального поискового движка с помощью Elasticsearch. Любит DDD и BDD, и уживается с TDD. Любитель подводного плавания и велосипедист - но это как обычно у голладцев. Поговорите с ним про Elasticsearch!

"Ничего личного", но это настолько личное! Ревью кода - всё ещё одна из причин конфликтов в команде, и может задержать доставку функциональности на дни, а то и недели. Фрэнк расскажет, почему это так, а главное, как сосредоточиться на главном: работе. Мы кратко рассмотрим психологию во время код-ревью и посмотрим на статистику, чтобы принимать информированные решения. В итоге мы обсудим сочетание этих техник, чтобы создать надёжный свод правил код-ревью для вашей команды, благодаря которому вы сможете ревьювить код по-настоящему асинхронно и без блокировок.