Rust новости #3 (ноябрь 2018)
Предлагаю вашему вниманию субъективную подборку ржавых новостей за ноябрь. В этой подборке: Rust 2018, RustRush, видео с конференций, Amazon Lambda и Firecracker, квизы, переход exonum на actix-web, 10 причин использовать Rust.
Опубликованы результаты ежегодного Rust-опроса (обсуждение), который шел с августа.
Там довольно много всякой интересной информации, особенно, если рассматривать в динамике по сравнению с прошлыми годами, но отдельно радует рост количества профессионально использующих язык: если в прошлом году 21% опрошенных использовали Rust на работе, то в этом году — уже 30%.
Rust 2018
Уже на днях будет выпущен Rust 1.31 — первая стабильная версия с поддержкой новой редакции языка: Rust 2018. (что за «редакции»?)
К выходу новой редакции языка приурочили редизайн официальной страницы языка — beta.rust-lang.org — который вызвал поляризованные отзывы о формулировках и шрифтах-цветах (например: 1, 2);
Firecracker от AWS (Amazon Web Services)
«В AWS представили Firecracker — «микровиртуализацию» для Linux»:
На AWS re: Invent 2018, что проходит в эти дни в Лас-Вегасе, состоялся анонс Firecracker — новой технологии виртуализации с открытым кодом, основанной на Linux KVM. Авторы обещают, что с ней «в доли секунды можно запускать легковесные микровиртуальные машины (microVMs) в невиртуализированной среде, получив преимущества и традиционных ВМ — в виде безопасности и изоляции рабочих нагрузок, и контейнеров — в виде эффективного использования ресурсов».
Основу проекту положила Open Source-разработка от Google — crosvm из Chromium OS, что написана на Rust и отвечает за запуск операционных систем с виртуализацией устройств (но без эмуляции реального аппаратного обеспечения). Посему код Firecracker тоже написан на языке Rust, и его авторы обещают возвращать свои исправления в кодовую базу родительского проекта, хотя сами проекты со временем сильно разошлись в своём предназначении.
Так же:
Все с растфеста посмотрели? Тогда вот еще добавка с Rust Belt Rust 2018:
Весь плейлист.
И закину сюда же до кучи двухчасовую запись Rust Bay Area Meetup.
RustRush 2018: конференция 15–16 декабря в Москве
RustRush 2018 — конференция для разработчиков на Rust, посвящённая вебу, блокчейну, высокой производительности и системному программированию.
Осталось меньше двух недель! CfP закончен, выложена окончательная программа докладов.
cheats.rs (репозиторий, обсуждение) — памятка по Rust + подборка ссылок на другие подобные памятки. Может дико пригодиться при погружении в язык.
Сайт, кстати, сделан с использованием Zola (см. ниже в секции новых и обновленных пакетов).
Статья о практическом опыте работы с относительно хитрым обобщенным кодом от Gorthauer87. Код кишок местами сложновато устроен, зато итоговый результат для пользователя удобен и красив.
freecoder_xx написал обзорную статью о менее продвигаемых достоинствах Rust.
В данной статье собран десяток неочевидных и особо не рекламируемых преимуществ использования Rust, которые, я надеюсь, помогут вам определиться с выбором этого языка для ваших проектов.
Из доклада Алекса вырос сайт со средне и очень сложными вопросами по крайним случаям и «бородавкам» Ржавчины (обсуждение). По нажатию кнопки «reveal» («сдаюсь») показывается развернутое объяснение что за чертовщина происходит в примере кода.
Исходный код всего этого дела живет тут. Туда можно делать PRы, если вы знаете еще клевые вопросы подобного формата.
Игрострой
Экосистема движка Аметист:
Одной строкой
Новые и обновленные пакеты
Некоторые свежие пакеты за месяц или существенные обновления старых:
- tr (обсуждение) — макросы для локализации приложений, вдохновленные 'tr' из Qt;
- cargo nono (обсуждение) — расширение cargo, которое по внешним эвристикам пытается найти зависимости, портящие ломающие no_std;
- immense (обсуждение) — пакет для генерации трехмерных сеток;
- Logos (обсуждение) — позволяет писать «невероятно быстрые» лексические анализаторы;
- fluid (обсуждение) — фреймворк для написания тестов, вдохновленный XUnit;
- guerrilla (обсуждение) — эксперимент по реализации «monkey patching» для Rust (кстати, про название пакета: я никогда не задумывался над этимологией термина «monkey patch»);
- serde_postgres — простой способ десериализовать строки из postgres в произвольные структуры (обратная сериализация не поддерживается);
- pgxr — позволяет писать ржавые функции расширения для PostgreSQL;
- MutGuard (обсуждение) — позволяет запускать произвольный код при каждом взятии изменяющей ссылки на хранимые данные (например, для проверки инвариантов);
- Zola 0.5 (обсуждение) — генератор статических сайтов Gutenberg сменил название на Zola и обзавелся подгрузкой данных из CSV/TOML/JSON, шаблонами страниц, «прозрачными секциями»;
- rand 0.6 (обсуждение) — библиотека для генерации случайных чисел, помимо теперь обзавелась своей собственной книгой;
- lifeguard 0.6 (обсуждение) — позволяет создавать пулы переиспользуемых объектов; Новая версия улучшает производительность, разрешает создавать рекурсивные указатели и добавляет служебные типажи для удобства;
- Pijul 0.11 (обсуждение, код) — система контроля версий, основанная на теории патчей, переехала на новый Tokio, обзавелась неполным клонированием, получила поддержку SSH прокси и конфигурационных файлов;
RFC
По RFC (Request for Comments) довольно удобно наблюдать, в какую сторону движется язык, так что вот некоторые интересные. В заголовке PRов есть ссылка «Rendered», по которой RFC доступен в удобочитаемой форме.
В этом месяце были приняты:
- RFC #2561 Future possibilities — в новых RFC появится секция с перспективами развития предложенной идеи (мета-RFC);
- RFC #2591 Stabilise exhaustive integer pattern matching — стабилизация исчерпывающих числовых сопоставлений, т.е., например, если в сопоставлении
u8
переменной перечислены все 255 значений, то_
ветка будет не нужна;
RFC в рассмотрении:
Pre-RFC:
Был отклонен RFC #2328 officially adopting Ferris — решили, что Ферриса нет особого смысла делать официальным талисманом;
Это все, спасибо за внимание!
Если я не добавил какую-то важную ссылку или событие, смело закидывайте в комментарии. :)
КДПВ взята отсюда, остальные картинки из сайтов соответствующих проектов.