J'attire votre attention sur une sélection subjective de nouvelles rouillées pour janvier. Dans cette collection: Rust 1.32, départ de Steve Klabnik et Nick Cameron, quiche Cloudflare, analyseur de rouille et dispositif de mémoire de page, recherches GUI et asynchrones, conférence Oxydyze pour les ingénieurs intégrés.

Rust 1.32 est sorti. Par rapport à la version précédente à grande échelle, sur laquelle beaucoup d'efforts de toute la communauté étaient concentrés, il n'y a pas beaucoup d'innovations majeures:
Détails dans la traduction de l'actualité .
Steve Klabnik et Nick Cameron quittent Mozilla

Triste nouvelle: Steve Klabnik et Nick "nrc" Cameron quittent Mozilla.
Le message de Steve «merci, ensuite» ( discussion ) indique que les principales raisons sont la gratification avec la partie «externe» de Mozilla to Rust et toutes sortes de problèmes d'argent terre-à -terre. Steve veut trouver du travail lié à Rust et va essayer de continuer à participer à la vie et au développement de la langue, même si ce n'est certainement pas dans l'ancien volume.
Dans "Quitter Mozilla et (l'essentiel) du projet Rust" ( discussion ), Nick dit qu'il était fatigué de ce projet pendant sept ans et qu'il veut changer de décor. Il est déjà allé travailler chez PingCAP :
"Commencer Ă PingCAP" ( discussion ).
Guide de l'analyseur de rouille et de la salsa

Alex @matklad a publié un guide / visite de la structure de l' analyseur de rouille ( qu'est-ce que c'est ?, Discussion ):
rust-analyzer utilise la bibliothèque de recompilation incrémentale Salsa, un article et quelques vidéos ont également été publiés récemment sur son appareil:
Rust OS: mémoire de page

La série d'articles Writing an OS in Rust a été complétée par deux articles sur la mémoire de page:

humbug a traduit son article en anglais, "Le Bot pour Starcraft, en rouille, C et toute autre langue . "
Rédaction d'une bibliothèque dynamique pour Windows, qui pourrait se charger dans l'espace d'adressage du jeu StarCraft: Brood War et gérer les unités.
Si quelqu'un n'a pas lu, alors voici une raison de vous familiariser. :)
Sommes-nous encore asynchrones?
Dernièrement, il y a eu tellement d'activité pour faire glisser la syntaxe asynchrone dans la langue ( par exemple ) qu'ils ont commencé une page mise à jour distincte avec le statut des RFC / discussions clés : areweasyncyet.rs ( discussion ).
Sommes-nous encore GUI?
areweguiyet.com ( discussion ) est une tentative similaire de rassembler en un seul endroit toutes les informations sur l'état des tentatives durables de donner naissance à une interface graphique fiable et idiomatique pour Rust.
Un excellent aperçu de la bibliothèque crossbeam , qui fournit des structures de données sans verrouillage efficaces, et son évolution au cours des dernières années ( discussion ).
Implémentations du protocole Rustic QUIC: Quiche de Cloudflare et Quinn

Le protocole expérimental QUIC (alternative au TCP, programme éducatif ) gagne lentement en popularité. Ce mois-ci:
Quinn v0.2 ( code , discussion ) a été publié, c'est maintenant l'une des implémentations les plus précises du protocole. Cette bibliothèque est principalement axée sur l'API Rust idiomatique, y compris la prise en charge des futures;
Cloudflare a publié son implémentation - Quiche ( discussion ) - plus axée sur l'API C bien développée pour l'intégration dans des applications dans d'autres langues.

Une traduction de l'article de Mozilla, "Fearless Security: Memory Safety", décrivant les bases de la façon dont Rust fournit une mémoire sécurisée.
Intégré




En une seule ligne
- Les mises à jour de janvier d' IntelliJ-Rust ( # 90 , # 91 ) incluent: la prise en charge du changement de nom des dépendances dans Cargo.toml , la prise en charge initiale de la macro 2.0 , la correction rapide "Make mutable" ( GIF ), la refactorisation de "Introduce Parameter" ( GIF ) et l'inférence de type pour les blocs d' essai et les générateurs ;
- WebRender a été publié sur crates.io ( discussion ) - maintenant il sera plus facile de faire d'autres projets avec;
- dtolnay / request-for-implementation ( discussion ) - une liste de "packages qui n'existent pas, mais qui devraient" avec une description assez détaillée des idées et des informations sur où chercher de l'aide et du mentorat;
- Rust est désormais le 13ème langage le plus populaire sur GitHub ( discussion );
- John Carmack enseigne Rust ( discussion );
- Mon expérience de conversion d'une bibliothèque Python en Rust ( discussion ) - un rapport sur la réécriture de la bibliothèque Python entière en Rust (le temps de développement est considérablement plus long, mais il n'y a pas beaucoup de problèmes avec les optimisations);
- Aide-mémoire multi-écrans pour les débutants ( discussion ) - LMB pour glisser-déposer;
- Est-il temps de réécrire le système d'exploitation dans Rust? ( discussion ) - une présentation avec QCon que vous ne devriez pas essayer de réécrire quelque chose à grande échelle sur Rust à la fois, vous devez passer par la création et la mise en œuvre de blocs de construction rouillés petits, utiles et de haute qualité;
- L'assemblage de ripgrep 0.10 (et ses dépendances) dans Debian est maintenant reproductible ( discussion ) - ceci est important pour que les paquets de rouille pénètrent dans d'autres écosystèmes;
- / r / rust: "Vos tours de rouille préférés?" - discussion avec toutes sortes de tours de rouille et de tours non évidents;
- / r / rust: Rust in the Benchmarks Game est en moyenne 3% plus rapide que C ++ et 4% plus lent que C " - il grimpe lentement, mais avec les benchmarks, tout est toujours compliqué et ambigu;
- rapport "Rust at speed - construction d'une base de données concurrente rapide" ( discussion ) - sur la construction d'une base de données multi-thread rapide sur Rust;
- librsvg dvizhuha: un graphique du librsvg "rouillé" , un rapport plus détaillé sur l'état du processus et un rapport séparé sur la simplification du travail avec GObject de Rust ;
- Développeur Red Hat: accélérez votre Python en utilisant Rust ( discussion ) - comment et pourquoi étendre le code Python avec Rust, comparaison avec la résolution d'un problème en utilisant numpy, sélection de liens pour une immersion supplémentaire dans la question;
- QtCreator et son utilisation comme IDE pour Rust ;
- / r / rust: Création d'outils de développement JavaScript avec Rust - présente trois packages "Rusty ECMAScript" - Scanner (RESS) , Syntax Analyzer (RESSA) , Writer (RESW) - permettant aux développeurs de développer des outils de développement JavaScript pour Rust;
- Quand Rust est plus sûr que Haskell ( discussion ) - Comparaison de la sécurité de Rust et Haskell;
- / r / rouille discussion sur les perspectives de rouille contre marche dans le contexte du web ;
- / r / rust: "Où pensez-vous que Rust sera dans 3 ans?" - Vanging sur l'avenir de Rust, il y a des opinions intéressantes dans les commentaires;
Packages nouveaux et mis Ă jour
- Ropey ( discussion ) est une implémentation efficace et compatible avec utf8 de la structure de données Rope / Cord , qui est souvent utilisée dans les éditeurs de texte;
- hexyl ( discussion ) - une visionneuse hexagonale de console qui utilise activement les couleurs pour indiquer des groupes de valeurs hexadécimales;
- cargo-cache ( discussion ) - vous permet de nettoyer sélectivement les morceaux
~/.cargo/
; - typetag ( discussion ) - un attribut de macro qui permet une sérialisation indolore de
&dyn Trait
et une désérialisation d'objets de type Box<dyn Trait>
; - dness ( discussion ) - client DNS dynamique;
- regex-automata ( discussion ) - fournit une interface de bas niveau pour travailler avec des expressions rĂ©gulières (contrairement Ă
regex
), ce qui est moins pratique, mais permet un contrôle détaillé de la consommation de mémoire et du temps de recherche; utilise DFA et prend en charge la sérialisation; - Stretch ( code , discussion ) - une implémentation rouillée de flexbox, utilisée dans Shard (comment elle est entassée dans Android et iOS );
- arbalest ( discussion ) est une alternative à Arc classique, mais les maillons faibles n'interdisent pas de modifier l'accès aux données;
- Toshi ( discussion ) - un moteur de recherche plein texte similaire Ă Elasticsearch (une alternative Ă ce que Tantivy , qui se concentre sur Lucene);
- port inferno -rouillé d'un visualiseur de barres de perles de résultats de profilage à flamme, le processus de développement est présenté sous forme de flux ( vidéo 1 , vidéo 2 );
- DataFusion v0.6 ( discussion , code ) - la première version du moteur de requête en mémoire utilisant l'implémentation Rust officielle d' Apache Arrow ;
- cargo-expand v0.4 ( discussion ) - l' expandeur de macros prend désormais en charge l'utilisation de modules / types / fonctions spécifiques;
- fluent-rs v0.5 ( discussion ) - une implémentation rouillée du système de localisation Fluent moderne a mis à jour l'approche d'allocation des ressources, a reçu un analyseur zéro copie et une documentation améliorée;
- Tokei v9.0 ( code , discussion ) - le programme de comptage des lignes dans le code source a reçu le support des fichiers de configuration, le nombre de PL compréhensibles est passé à 170;
- cargo-crev v0.4 ( discussion ) - Le système UX de révision des paquets distribués a été repensé pour simplifier considérablement ;
- Smithay v0.2 ( code , discussion ) - Un exemple d' enclume a été ajouté à la bibliothèque pour développer des gestionnaires de fenêtres pour Wayland , un support amélioré pour les couleurs et XWayland, réécrit DRM;
- oxyde-auth v0.4 ( discussion ) - La bibliothèque OAuth2 a été complètement réécrite et est maintenant compatible avec actix, rocket et rouille;
Habr a récemment desserré les noix et permet désormais de faire référence à des ressources communautaires externes, donc j'invite tout le monde à se familiariser avec Rust pour chercher de l'aide et des conseils dans les ressources russophones sur Rust:
C'est tout, merci d'avoir regardé!
Si je n'ai ajouté aucun lien ou événement important, n'hésitez pas à le déposer dans les commentaires. :)
KDPV prise d'ici , les photos restantes des sites des projets respectifs.