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

в 10:54, , рубрики: embedded, Gamedev, open source, Rust, webassembly, дайджест, подборка, Программирование, разработка игр, системное программирование, ссылки

Предлагаю вашему вниманию субъективную подборку ржавых новостей за январь. В этой подборке: 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

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

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'у:


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

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

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

Автор: ozkriff

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js