Новости Rust #1 (Сентябрь 2018)

    кдпв


    Мой комментарий к новости про Rust 1.28 с обзором ржавых событий за месяц неплохо зашел, так что вот держите очень субъективный срез ржавых новостей за прошлый месяц.


    В этой подборке: Rust 1.29, записи докладов с Rustconf 2018, gfx-rs, Rust2018, порт Flatbuffers, новые версии ripgrep и Alacritty.


    Rust 1.29


    Вышел Rust 1.29. Основные нововведения — доступные сразу из rustupcargo fix и cargo clippy (подробнее в хабропереводе).


    Следом была выпущена версия 1.29.1, закрывшая ошибку в std::repeat (обсуждение).


    Rust 1.30 и 1.31 будут очень значительными.

    Точного списка пока нет, но ожидается что:


    • в 1.30 (2018.10.26) войдет частичная стабилизация процедурных макросов;
    • в 1.31 (2018.12.07) войдут Rust 2018 + non-lexical lifetimes (NLL).

    Видео с Rustconf 2018


    rustconf 2018 logo


    Стали доступны видео с RustConf 2018 (программа докладов). Список видео в порядке очень примерной субъективной интересности:



    Бонус: прилетело несколько записей с Rust Cologne:



    WebAssembly



    WebRender, gfx-rs и gfx-portability


    Тут много движухи было последнее время:



    Ржавый игрострой



    Что бы вы убрали из Rust?


    Занятная тема в /r/rust, где из комментариев можно узнать порядочно всяких шероховатостей языка.


    Ржавый порт FlatBuffers


    Завезли официальный порт гуглового FlatBuffers на Rust (обсуждение). Толстый слой тестов, фаззинг, производительность и все остальное присутствуют.


    Don't fear 1.0!


    Интересное обсуждение в /r/rust почему экосистема медленно перебирается на > 1.0 пакеты.


    TLDR:


    • Чтобы автор стабилизриовал пакет, ему надо убедиться что АПИ адекватный — для этого ему надо увидеть, как люди им пользуются. Много людей не пользуются пакетами < 1.0, ожидая их стабилизации — от этого стабилизация замедляется;
    • Для пользователей: хотите больше стабильных пакетов — пользуйтесь нестабильными и давайте обратную связь автору;
    • Для авторов: не парьтесь так сильно насчет выпуска 1.0.

    ripgrep 0.10


    ripgrep (rg) это более быстрая и удобная альтернатива классическому grep (т.е. ржавый аналог The Silver Searcher и ack).


    Вышла версия 0.10 (обсуждение, очень занятное) — теперь работает еще быстрее, поддерживает PRCE2 и многострочные запросы.


    Также, пакет ripgrep пробрался в репозиторий ubuntu 18.10.


    Alacritty 0.2


    Alacritty это эмулятор терминала с GPU ускорением, который пытается быть очень-очень быстрым на любом 4К экране.


    Снимок Alacritty


    Вышла версия 0.2 (обсуждение) с поддержкой прокрутки. От ее добавления долго отказывались, говоря "используйте tmux", но в итоге получилось родить не сильно бьющую по производительности реализацию.


    Кстати, как и ripgrep, Alacritty пролезает в линуксовые дистрибутивы: завезли в Арч;


    Новые RFC


    По RFC довольно удобно наблюдать, в какую сторону движется язык. В заголовке каждого PRа есть ссылка "Rendered", по которой RFC доступен в удобочитаемой форме.



    RFC 2418 "Add futures and task system to libcore" опять отложен, не судьба ему стать частью нововведений Rust2018.


    Идет обсуждение семантики импортов в Rust 2018.


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






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


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


    КДПВ взята из статьи Looking to what to learn in 2018? Learn Rust!, остальные картинки из сайтов соответвующих проектов.

    Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

    Правильная ли детализация для ежемесячного формата?

    • 20.8%Слишком много ссылок, я устал скролить. Лучше бы убрать менее интересные19
    • 48.3%Как есть — в самый раз44
    • 30.7%Я не против, если бы ссылок было еще больше28
    • +41
    • 6,3k
    • 6
    Поделиться публикацией

    Похожие публикации

    Комментарии 6

      +1
      А на чем сейчас имеет смысл делать GUI на Rust?
        +2
        к сожалению, кажется, что особо не на чём, но если очень хочется, то варианты такие:
        gtk (relm или обычный), либо смотреть в сторону web (yew и ещё альтернативы).
          0
          Я планирую на обычном WinAPI попробовать.
            +2
            Да, в принципе под все существующие библиотеки есть обертки. Я на данный момент тесно работаю с rust-qt-binding-generator. Он генерирует необходимую обертку для работы с qml. Пример TODO

            Список существующих GUI библиотек для RUST
              +1

              Есть достаточно хорошие биндинги для GTK, glib и всей g-экосистемы: https://gtk-rs.org. Есть rust-qt-binding-generator. Но вообще для GUI Rust не очень-то подходит с его моделью памяти (ownership, отсутствие классов и наследования...); имеет смысл писать на Rust ядро/бэкэнд, а GUI — на более «родном» для платформы языке (Vala, Objective-C, Kotlin, ...)

              +1
              Спасибо огромное, очень полезный дайджест, нашел для себя много пропущенного ранее.

              Следующий пост Брайана можно добавить, хоть он и озаглавлен неудачно:
              dtrace.org/blogs/bmc/2018/09/28/the-relative-performance-of-c-and-rust

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