Open source
Programming
System Programming
Game development
Rust
7 February

Rust новости #5 (январь 2019)

Предлагаю вашему вниманию субъективную подборку ржавых новостей за январь. В этой подборке: Rust 1.32, уход Стива Клабника и Ника Камерона, киш от Cloudflare, устройство rust-analyzer и страничной памяти, поиски GUI и async, Oxydyze конференция для встроенщиков.


КДПВ


Rust 1.32


Вышел Rust 1.32. По сравнению с масштабным прошлым выпуском, на котором было сконцентрировано множество сил всего сообщества, тут серьезных нововведений не очень много:



Подробности в переводе новости.


Стив Клабник и Ник Камерон уходят из Mozilla


NYT firefox 1.0


Печальные новости: Стив Клабник и Ник "nrc" Камерон покидают Мозиллу.


В посте Стива "thank u, next" (обсуждение) говорится о том, что главными причинами являются терки с "внешней" по отношению к Rust частью Мозиллы и всякие приземленные денежные вопросы. Стив хочет найти связанную с Rust работу и постарается продолжить принимать участие в жизни и развитии языка, хотя уже точно не в старом объеме.


В "Leaving Mozilla and (most of) the Rust project" (обсуждение) Ник говорит, что просто устал за семь лет от этого проекта и хочет смены обстановки. Он уже вышел на работу в PingCAP:
"Starting at PingCAP" (обсуждение).


Guide to the rust-analyzer & Salsa


схемка логики анализатора


Леша @matklad выложил руководство/экскурсию по структуре rust-analyzer (что это?, обсуждение):



rust-analyzer использует библиотеку инкрементальной рекомпиляции Salsa, про ее устройство тоже недавно публиковался пост и пара видео:



ОС на Rust: Страничная память


схема из статьи про память


Цикл статей Writing an OS in Rust пополнился двумя статьями про страничную память:



A bot for Starcraft in Rust, C or any other language?


лого старкрафта


humbug перевел на английский свою статью "Бот для Starcraft на Rust, C и на любом другом языке".


Написание динамической библиотеки под Windows, которая могла бы загружаться в адресное пространство игры StarCraft: Brood War и управлять юнитами.

Если кто не читал, то вот повод ознакомиться. :)


Are We Async Yet?


Вокруг втаскивания асинхронного синтаксиса в язык последнее время так много активности (например), что вот завели отдельную обновляемую страничку со статусом ключевых RFC/обсуждений: areweasyncyet.rs (обсуждение).


Are We GUI Yet?


areweguiyet.com (обсуждение) — похожая попытка собрать в одном месте всю информацию о статусе вечно актуальных попыток родить надежный и идиоматичный GUI для Rust.


Lock-free Rust: Crossbeam in 2019


Отличный обзор библиотеки crossbeam, предоставляющей эффективные lock-free структуры данных, и пути ее эволюции за последние годы (обсуждение).


Ржавые реализации протокола QUIC: Quiche от Cloudflare и Quinn


лого quiche в виде тортика


Экспериментальный протокол QUIC (альтернатива TCP, ликбез) потихоньку набирает популярность. В этом месяце:


  • Вышел Quinn v0.2 (код, обсуждение), теперь он является одной из наиболее точных реализаций протокола. В первую очередь эта библиотека ориентирована на идиоматичном Rust API, включая поддержку футур;


  • Cloudflare выпустили свою реализацию — Quiche (обсуждение) — более сфокусированную на проработанном Си API для интеграции в приложения на других языках.



Бесстрашная защита: Безопасность памяти в Rust


симба, не ходи в unsafe


Перевод мозилловской статьи "Fearless Security: Memory Safety", рассказывающей об основах того, как Rust обеспечивает безопасную работу с памятью.


Embedded


кусок схемы из поста



badge


WebAssembly


картинка из статьи про встраивание WASM'а



Игрострой



длинное гиф демо текущего игрового процесса



Одной строкой



Новые и обновленные пакеты


  • Ropey (обсуждение) — эффективная и utf8 совместимая реализация структуры данных Rope/Cord, которая часто используется в редакторах текста;
  • hexyl (обсуждение) — консольный хекс-просмотрщик, активно использующий цвета для обозначения групп шестнадцатеричных значений;
  • cargo-cache (обсуждение) — позволяет выборочно чистить куски ~/.cargo/;
  • typetag (обсуждение) — макро-атрибут, дающий возможность безболезненной сериализаций &dyn Trait и десериализации Box<dyn Trait> типаж-объектов;
  • dness (обсуждение) — динамический dns клиент;
  • regex-automata (обсуждение) — предоставляет низкоуровневый интерфейс для работы с регулярными выражениями (в отличие от regex), который менее удобен, но зато позволяет детально контролировать потребление памяти и время поиска; использует DFA и поддерживает сериализацию;
  • Stretch (код, обсуждение) — ржавая реализация флексбокса, используется в Shard (как оно запихивается в андроид и в ios);
  • arbalest (обсуждение) — альтернатива обычному Arc, но слабые ссылки не запрещают изменяющий доступ к данным;
  • Toshi (обсуждение) — движок полнотекстового поиска, аналогичный Elasticsearch (альтернатива what Tantivy, который ориентируется на Lucene);
  • inferno — ржавый порт перлового визуализатора результатов профилирования flamegraph, процесс разработки выкладывается в виде стримов (видео 1, видео 2);
  • DataFusion v0.6 (обсуждение, код) — первая версия in-memory движка запросов, использующая официальную Rust реализацию Apache Arrow;
  • cargo-expand v0.4 (обсуждение) — "раскрыватель" макросов теперь поддерживает работу с конкретными модулями/типами/функциями;
  • fluent-rs v0.5 (обсуждение) — ржавая реализация современной системы локализации Fluent обновила подход к выделению ресурсов, получила zero-copy парсер и улучшила документацию;
  • Tokei v9.0 (код, обсуждение) — программа подсчета строк в исходном коде получила поддержку конфигурационных файлов, количество понимаемых ЯП выросло до 170;
  • cargo-crev v0.4 (обсуждение) — UX системы распределенного ревью пакетов был переработан в сторону сильного упрощения;
  • Smithay v0.2 (код, обсуждение) — в библиотеке для разработки оконных менеджеров для Wayland был добавлен пример Anvil, улучшена поддержка цветов и XWayland, переписан DRM;
  • oxide-auth v0.4 (обсуждение) — OAuth2 библиотека была полностью переписана и теперь совместима с actix, rocket и rouille;



Хабр недавно ослабил гайки и теперь разрешает ссылаться на внешние ресурсы-сообщества, так что всех желающих познакомиться с Rust приглашаю заглядывать за помощью и советами в русскоязычные ресурсы по Rust'у:





Это все, спасибо за внимание!


Если я не добавил какую-то важную ссылку или событие, смело закидывайте в комментарии. :)


КДПВ взята отсюда, остальные картинки из сайтов соответствующих проектов.


+52
12.3k 37
Comments 12
Top of the day