ДайджестХабрахабр

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

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

КДПВ

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

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

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

0"/> <img src="http://orion-int.ru/wp-content/uploads/2019/02/rust-novosti-5-yanvar-2019-1.jpg" alt="NYT firefox 1.

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

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

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

Guide to the rust-analyzer & Salsa

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

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

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

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

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

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

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

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

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

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

Are We Async Yet?

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

Are We GUI Yet?

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

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

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

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

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

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

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

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

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

Embedded

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

badge

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

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

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

  • Январские обновления IntelliJ-Rust (#90, #91) включают в себя: поддержку переименования зависимостей в Cargo.toml, начальную поддержку macro 2.0, быстрое исправление "Make mutable" (GIF), рефакторинг "Introduce Parameter" (GIF) и выведение типов для try блоков и генераторов;
  • WebRender был опубликован на crates.io (обсуждение) — теперь с ним проще будет делать другие проекты;
  • dtolnay/request-for-implementation (обсуждение) — список "пакетов, которые не существуют, а должны бы" с довольно подробным описанием идей и информацией о том, где искать помощь и менторство;
  • Rust сейчас является 13м по популярности языком на GitHub'е (обсуждение);
  • Джон Кармак учит Rust (обсуждение);
  • My experience converting a Python library to Rust (обсуждение) — отчет о переписывании Python библиотеки целиком на Rust (время разработки существенно больше, зато бед с оптимизациями не много);
  • Многоэкранная шпаргалка по Rust для новичков (обсуждение) — ЛКМ для перетаскивания;
  • Is It Time to Rewrite the Operating System in Rust? (обсуждение) — презентация с QCon о том, что не надо пытаться за раз переписать что-то масштабное на Rust, надо идти путем создания и внедрения небольших, полезных и качественных ржавых строительных блоков;
  • Cборка ripgrep 0.10 (и его зависимостей) в Debian теперь воспроизводима (обсуждение) — это как раз важно для проникновения rust пакетов в другие экосистемы;
  • /r/rust: "Your favourite Rust tricks?" — обсуждение со всякими Rust-трюками и неочевидными приемами;
  • /r/rust: Rust в Benchmarks Game в среднем на 3% быстрее C++ и на 4% медленнее Си" — ползет вверх потихоньку, но с бенчмарками все всегда сложно и неоднозначно;
  • доклад "Rust at speed — building a fast concurrent database" (обсуждение) — о построении быстрой многопоточной БД на Rust;
  • librsvg движуха: график "ржавения" librsvg, более подробный отчет о статусе процесса и отдельный отчет об упрощении работы с GObject из Rust;
  • Red Hat Developer: Speed up your Python using Rust (обсуждение) — как и для чего расширять Python код Ржавчиной, сравнение с решением задачи при помощи numpy, подборка ссылок для дальнейшего погружения в вопрос;
  • QtCreator и его использование в качестве IDE для Rust;
  • /r/rust: Building JavaScript Development Tools with Rust — представляет три "Rusty ECMAScript" пакета — Scanner (RESS), Syntax Analyzer (RESSA), Writer (RESW) — позволяющих разрабатывать на Rust средства разработки для JavaScript;
  • When Rust is safer than Haskell (обсуждение) — сравнение безопасности Rust и Haskell;
  • /r/rust обсуждение на тему перспектив rust-vs-go в контексте веба;
  • /r/rust: "Where do you think Rust will be in 3 years?" — вангование о будущем Rust'а, есть интересные мнения в комментариях;

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

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

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

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

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

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть