КДПВ про Rust2018


Предлагаю вашему вниманию субъективную подборку ржавых новостей за ноябрь. В этой подборке: Rust 2018, RustRush, видео с конференций, Amazon Lambda и Firecracker, квизы, переход exonum на actix-web, 10 причин использовать Rust.


Результаты Rust опроса 2018


график из опроса про сложность изучения тем


Опубликованы результаты ежегодного Rust-опроса (обсуждение), который шел с августа.


Там довольно много всякой интересной информации, особенно, если рассматривать в динамике по сравнению с прошлыми годами, но отдельно радует рост количества профессионально использующих язык: если в прошлом году 21% опрошенных использовали Rust на работе, то в этом году — уже 30%.


Rust 2018


Уже на днях будет выпущен Rust 1.31 — первая стабильная версия с поддержкой новой редакции языка: Rust 2018. (что за "редакции"?)


К выходу новой редакции языка приурочили редизайн официальной страницы языка — beta.rust-lang.org — который вызвал поляризованные отзывы о формулировках и шрифтах-цветах (например: 1, 2);


Firecracker от AWS (Amazon Web Services)


лого firecracker


"В AWS представили Firecracker — «микровиртуализацию» для Linux":


На AWS re:Invent 2018, что проходит в эти дни в Лас-Вегасе, состоялся анонс Firecracker — новой технологии виртуализации с открытым кодом, основанной на Linux KVM. Авторы обещают, что с ней «в доли секунды можно запускать легковесные микровиртуальные машины (microVMs) в невиртуализированной среде, получив преимущества и традиционных ВМ — в виде безопасности и изоляции рабочих нагрузок, и контейнеров — в виде эффективного использования ресурсов».

Основу проекту положила Open Source-разработка от Google — crosvm из Chromium OS, что написана на Rust и отвечает за запуск операционных систем с виртуализацией устройств (но без эмуляции реального аппаратного обеспечения). Посему код Firecracker тоже написан на языке Rust, и его авторы обещают возвращать свои исправления в кодовую базу родительского проекта, хотя сами проекты со временем сильно разошлись в своём предназначении.

Так же:



Видео докладов с RustFest 2018 Rome


лого римского растфеста



Видео докладов с Rust Belt Rust 2018


лого растбелта


Все с растфеста посмотрели? Тогда вот еще добавка с Rust Belt Rust 2018:



Весь плейлист.


И закину сюда же до кучи двухчасовую запись Rust Bay Area Meetup.


RustRush 2018: конференция 15-16 декабря в Москве


лого конфы


RustRush 2018 — конференция для разработчиков на Rust, посвящённая вебу, блокчейну, высокой производительности и системному программированию.


Осталось меньше двух недель! CfP закончен, выложена окончательная программа докладов.


cheats.rs


логотип


cheats.rs (репозиторий, обсуждение) — памятка по Rust + подборка ссылок на другие подобные памятки. Может дико пригодиться при погружении в язык.


Сайт, кстати, сделан с использованием Zola (см. ниже в секции новых и обновленных пакетов).


Как мы переводили Exonum с Iron на actix-web


лого старшего актикса


Статья о практическом опыте работы с относительно хитрым обобщенным кодом от Gorthauer87. Код кишок местами сложновато устроен, зато итоговый результат для пользователя удобен и красив.


10 неочевидных преимуществ использования Rust


freecoder_xx написал обзорную статью о менее продвигаемых достоинствах Rust.


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

Rust Quiz


Из доклада Алекса вырос сайт со средне и очень сложными вопросами по крайним случаям и "бородавкам" Ржавчины (обсуждение). По нажатию кнопки "reveal" ("сдаюсь") показывается развернутое объяснение что за чертовщина происходит в примере кода.


Исходный код всего этого дела живет тут. Туда можно делать PRы, если вы знаете еще клевые вопросы подобного формата.


Embedded


клеймление микроконтроллера растом



WebAssembly


Феррис в WA-каске



Игрострой



Экосистема движка Аметист:



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



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


Некоторые свежие пакеты за месяц или существенные обновления старых:


  • 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 — решили, что Ферриса нет особого смысла делать официальным талисманом;




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


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


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

Комментарии (12)


  1. freecoder_xx
    06.12.2018 13:02
    +1

    Спасибо! С картинками воспринимать обзор стало значительно легче )
    Радует, что проводится столько конференций по Rust и созревает экосистема.


  1. AngReload
    06.12.2018 17:19
    +4

    https://cheats.rs/ — круть! Очень не хватало такой шпаргалки.


    1. ozkriff Автор
      06.12.2018 17:26
      +1

      Кстати, в книгах всегда была глава с синтаксическим индексом — https://doc.rust-lang.org/book/syntax-index.html — но про нее почти никто не знал (и не знает, видимо).


      1. cheblin
        06.12.2018 20:27
        +2

        уже выкладывал свой «креатиф» может не все видели. тема Ref, Box, Rc, Cell, Arc


      1. AngReload
        07.12.2018 05:32

        Имхо, во всём проигрывает шпаргалке. Ни синтаксиса, нет порядка… просто ничего нет — кучка ключевых слов.


        1. freecoder_xx
          07.12.2018 15:53

          Зато можно сразу видеть, где применяется то или иное слово еще. И перейти по ссылке.


        1. ozkriff Автор
          07.12.2018 15:57

          Шпаргалка и правда больше информации содержит, но не так что бы на порядок же.


          просто ничего нет — кучка ключевых слов

          Это звучит как Appendix A: Keywords, но есть же еще и Appendix B: Operators and Symbols, в котором как раз весь основной синтаксис разобран.


  1. Draugdor
    06.12.2018 17:41
    +2

    И ещё отдельное спасибо за cheats.rs, полезная штука.


  1. Ockonal
    06.12.2018 19:56
    +1

    Спасибо за проделанную работу. Вроде мониторишь каждый день, но вот такая сводка с кратким описанием позволяет держать в памяти изменения.


  1. forcam
    07.12.2018 05:15

    Спасибо за труд, было бы неплохо сделать агрегатор, вебсайт на котором бы все это дело можно было бы легко найти, что бы с древовидной структурой,.превью, миникартинками мини описаниями ну и всем таким, было бы удобно. Дайджест это конечно круто, но сайт где все это по полочкам и на реалтайм потоке, мне кажется было бы еще круче, а освещать все обновления можно в отдельном телеграм канале, формат: дата: новое и по пунктам, с ссылками.
    p.s.: Rust жив))


    1. freecoder_xx
      07.12.2018 15:56
      +1

      Это все сделать конечно можно, но кто будет кормить разработчиков, пока они все это будут разрабатывать, поддерживать и наполнять? )


      1. ozkriff Автор
        07.12.2018 16:06

        +1, это совсем другой уровень временных затрат.


        Но тут даже скорее вопрос в просто другом фокусе. В "альфа версии" этих ежемесячников написано, какую примерно ЦА я себе представляю:


        Я тут подумал, что на хабре довольно много сочувствующих ржавчине, но не прям сильно следящих за происходящим в экосистеме (не подписанных на TWIR?).

        Т.е. я это все пишу или для тех крабообразных, которые слишком заняты полезной работой, что бы пристально следить за новостями, или для тех кто растом вообще не сильно пользуется, но подумывает/сочувствующий. Ни тем, ни другим от вышеописанного новороченного информационного портала пользы все равно почти никакой не будет.


        Ну и в целом, даже если и вопрос ЦА вынести за скобки, я сильно не уверен в жизнеспособности такого портала даже для основного раст сообщества, потому что практические потребности всех активных членов карго-культа покрываются или хорошо структурированным TWIR еженедельниками, или всезнающим /r/rust, оба которых уже всем знакомы и привычны.