Rust news # 5 (January 2019)

    I bring to your attention a subjective selection of rusty news for January. In this selection: Rust 1.32, care of Steve Klabnik and Nick Cameron, Cloudflare kish, device rust-analyzer and page memory, GUI searches and async, Oxydyze conference for builders.


    Rust 1.32

    Rust 1.32 released. Compared to the large-scale past release, on which a lot of the forces of the whole community were concentrated, there are not so many serious innovations:

    • New helper macro for debugging dbg!;
    • By default, jemalloc is removed.
    • Stable "uniform paths"

    Details in the translation of the news .

    Steve Klabnik and Nick Cameron leave Mozilla

    NYT firefox 1.0

    Sad news: Steve Klabnik and Nick "nrc" Cameron leave Mozilla.

    Steve's post “thank u, next” ( discussion ) states that the main reasons are float with “external” to Rust part of Mozilla and all sorts of mundane money issues. Steve wants to find a job related to Rust and will try to continue to take part in the life and development of the language, although it is definitely not in the old volume.

    In "Leaving Mozilla and (most of) the Rust project" ( discussion ), Nick says that he’s just tired of this project in seven years and wants a change of scenery. He has already gone to work at PingCAP :
    "Starting at PingCAP" ( discussion ).

    Guide to the rust-analyzer & Salsa

    analyzer logic circuit

    Lesch @matklad laid out guide / tour of the structure of the rust-analyzer ( what is this? , Discussion ):

    The rust-analyzer uses the Salsa incremental recompilation library, a post and a couple of videos have also recently been published about its device:

    OS on Rust: Page Memory

    scheme from the article about memory

    A series of articles Writing an OS in Rust added two articles about page memory:

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

    Starcraft logo

    humbug translated its article "Starcraft bot on Rust, C and in any other language" into English .

    Writing a dynamic library under Windows that could be loaded into the address space of the StarCraft: Brood War game and control units.

    If someone has not read, then here is a reason to get acquainted. :)

    Are We Async Yet?

    Around the intake of asynchronous syntax into the language lately there has been so much activity ( for example ) that a separate updated page with the status of key RFC / discussions has been introduced : ( discussion ).

    Are We GUI Yet? ( discussion ) - a similar attempt to collect in one place all the information about the status of the ever-pressing attempts to give birth to a reliable and idiomatic GUI for Rust.

    Lock-free Rust: Crossbeam in 2019

    An excellent overview of the crossbeam library , which provides efficient lock-free data structures, and the ways in which it has evolved over recent years ( discussion ).

    Rusty implementations of the QUIC protocol: Quiche from Cloudflare and Quinn

    logo quiche in the form of a cake

    The QUIC experimental protocol (TCP alternative, educational program ) is slowly gaining popularity. This month:

    • Came out of Quinn v0.2 ( code , discussion ), he is now one of the most accurate implementations of the protocol. First of all, this library is focused on the idiomatic Rust API, including support for futures;

    • Cloudflare released their implementation - Quiche ( discussion ) - more focused on a well-developed C API for integration into applications in other languages.

    Fearless Defense: Rust Memory Security

    Simba, do not go in unsafe

    Translation of the Mozillian article "Fearless Security: Memory Safety" , which tells about the basics of how Rust ensures safe work with memory.


    piece of the scheme of the post



    picture from the WASM embedding article


    long gif demo of the current gameplay

    One line

    New and updated packages

    • Ropey ( discussion ) - an effective and utf8 compatible implementation of the Rope / Cord data structure , which is often used in text editors;
    • hexyl ( discussion ) - console hex viewer, actively using colors to designate groups of hexadecimal values;
    • cargo-cache ( discussion ) - allows you to selectively clean the pieces ~/.cargo/;
    • typetag ( discussion ) - a macro attribute that allows painless serialization &dyn Traitand deserialization of Box<dyn Trait>type-objects;
    • dness ( discussion ) - dynamic dns client;
    • regex-automata ( discussion ) - provides a low-level interface for working with regular expressions (as opposed to regex), which is less convenient, but allows for detailed control of memory consumption and search time; uses DFA and supports serialization;
    • Stretch ( code , discussion ) - rusty flexbox implementation, used in Shard (as it is pushed into android and ios );
    • arbalest ( discussion ) is an alternative to regular Arc, but weak links do not prohibit altering data access;
    • Toshi ( discussion ) - a full-text search engine, similar to Elasticsearch (an alternative to what Tantivy , which focuses on Lucene);
    • inferno - rusty port of barley visualizer of flamegraph profiling results , the development process is laid out in the form of streams ( video 1 , video 2 );
    • DataFusion v0.6 ( discussion , code ) - the first version of the in-memory query engine, using the official Rust implementation of Apache Arrow ;
    • cargo-expand v0.4 ( discussion ) - the "macros opener " now supports working with specific modules / types / functions;
    • fluent-rs v0.5 ( discussion ) - the rusty implementation of the modern localization system Fluent updated the approach to resource allocation, got the zero-copy parser and improved the documentation;
    • Tokei v9.0 ( code , discussion ) - the program of counting lines in the source code has received support for configuration files, the number of understood YPs has grown to 170;
    • cargo-crev v0.4 ( discussion ) - The UX system of the distributed review package has been redesigned towards a strong simplification;
    • Smithay v0.2 ( code , discussion ) - Anvil example was added to the library for developing window managers for Wayland , colors and XWayland were improved, rewritten by DRM;
    • oxide-auth v0.4 ( discussion ) - The OAuth2 library has been completely rewritten and is now compatible with actix, rocket and rouille;

    Habr has recently loosened the nuts and now allows you to refer to external community resources, so I’m inviting everyone to get acquainted with Rust by looking for help and advice in the Russian-speaking resources for Rust:

    That's all, thank you for your attention!

    If I have not added any important link or event, feel free to throw in the comments. :)

    KDPV taken from here , the rest of the pictures from the sites of relevant projects.

    Also popular now: