Ich mache Sie auf eine subjektive Auswahl rostiger Nachrichten für Januar aufmerksam. In dieser Auswahl: Rust 1.32, Steve Klabnik und Nick Cameron verlassen, Cloudflare-Quiche, Rostanalysator und Seitenspeichergerät, GUI- und Async-Suche, Oxydyze-Konferenz für integrierte Ingenieure.

Rust 1.32 wurde veröffentlicht. Im Vergleich zu der groß angelegten früheren Version, auf die sich viele Anstrengungen der gesamten Community konzentrierten, gibt es nicht sehr viele wichtige Neuerungen:
Details in der Übersetzung der Nachrichten .
Steve Klabnik und Nick Cameron verlassen Mozilla

Traurige Nachricht: Steve Klabnik und Nick "nrc" Cameron verlassen Mozilla.
In Steves Beitrag "Danke, weiter" ( Diskussion ) heißt es, dass die Hauptgründe Reiben mit dem "externen" Teil von Mozilla to Rust und allen Arten von bodenständigen Geldproblemen sind. Steve möchte Arbeit im Zusammenhang mit Rust finden und wird versuchen, weiterhin am Leben und der Entwicklung der Sprache teilzunehmen, obwohl dies sicherlich nicht im alten Band enthalten ist.
In "Verlassen von Mozilla und (dem größten Teil) des Rust-Projekts" ( Diskussion ) sagt Nick, dass er dieses Projekt sieben Jahre lang satt hatte und einen Szenenwechsel wünscht. Er hat bereits bei PingCAP gearbeitet :
"Ab PingCAP" ( Diskussion ).
Anleitung zum Rostanalysator & Salsa

Alex @matklad hat einen Leitfaden / eine Tour durch die Struktur des Rostanalysators gepostet ( was ist das?, Diskussion ):
Der Rostanalysator verwendet die inkrementelle Salsa-Neukompilierungsbibliothek. Kürzlich wurden auch ein Beitrag und einige Videos zu seinem Gerät veröffentlicht:
Rust OS: Seitenspeicher

Die Artikelserie Schreiben eines Betriebssystems in Rust wurde mit zwei Artikeln zum Seitenspeicher ergänzt:

Humbug übersetzte seinen englischen Artikel "The Bot for Starcraft" in Rust, C und jede andere Sprache .
Schreiben einer dynamischen Bibliothek für Windows, die in den Adressraum des Spiels StarCraft: Brood War geladen und Einheiten verwaltet werden kann.
Wenn jemand nicht gelesen hat, ist hier ein Grund, sich vertraut zu machen. :) :)
Sind wir schon asynchron?
In letzter Zeit gab es so viele Aktivitäten zum Ziehen asynchroner Syntax in die Sprache ( zum Beispiel ), dass eine separate aktualisierte Seite mit dem Status der wichtigsten RFC / Diskussionen gestartet wurde : areweasyncyet.rs ( Diskussion ).
Sind wir schon GUI?
areweguiyet.com ( Diskussion ) ist ein ähnlicher Versuch, alle Informationen über den Status von immer aktuellen Versuchen, eine zuverlässige und idiomatische Benutzeroberfläche für Rust zu erstellen , an einem Ort zu sammeln.
Ein hervorragender Überblick über die Crossbeam- Bibliothek, die effektive sperrenfreie Datenstrukturen bietet, und ihre Entwicklung in den letzten Jahren ( Diskussion ).
Rusty QUIC-Protokollimplementierungen: Quiche von Cloudflare und Quinn

Das experimentelle QUIC-Protokoll (Alternative zu TCP, Bildungsprogramm ) gewinnt langsam an Popularität. In diesem Monat:
Quinn v0.2 ( Code , Diskussion ) wurde veröffentlicht, jetzt ist es eine der genauesten Implementierungen des Protokolls. Diese Bibliothek konzentriert sich hauptsächlich auf die idiomatische Rust-API, einschließlich der Unterstützung von Futures.
Cloudflare veröffentlichte seine Implementierung - Quiche ( Diskussion ) - und konzentrierte sich mehr auf die gut entwickelte C-API für die Integration in Anwendungen in anderen Sprachen.

Eine Übersetzung von Mozillas Artikel "Fearless Security: Memory Safety" beschreibt die Grundlagen, wie Rust sicheren Speicher bereitstellt.
Eingebettet



- imgui-ext ( Diskussion ) - ein experimentelles prozedurales Makro zum schnellen Erstellen von Debugging-GUIs basierend auf imgui ( Codebeispiel + Bild des Ergebnisses );
- Verwenden von Rust für Gamedev ( Diskussion ) - Matthew Michelotti spricht über seine Erfahrungen mit einem Pinguinspiel ;
- fl3 hat die WASM / WebGL-Engine mit einer Good-Web-Game- Engine, einer API, die mit einer Teilmenge von GGEZ kompatibel ist, durcheinander gebracht, sodass mein Zemerot plötzlich eine vollständige Webversion bekam: ozkriff.itch.io/zemeroth ( Diskussion );
- WebGL + Rust: Grundlegendes Wasser-Tutorial ( Diskussion ) - Der Artikel enthält eine interaktive Demo.
- Lokathor arbeitet aktiv an einer Reihe von Lektionen über gfx-hal .
- The State Of GGEZ, 2019 ( Diskussion ) - Icefoxen möchte GGEZ v0.5 veröffentlichen und einen "Urlaub" machen, wobei die Entwicklung an die Co-Autoren delegiert wird. Darüber hinaus beschreibt der Artikel den aktuellen Status der Unterstützung für Mobil- und Webplattformen + Gedanken zum Übergang zum neuen gfx-hal ;
- Eine große Liste dessen, was Stevebob letztes Jahr für Rust getan hat , einschließlich: einer Wellenfunktions- Kollapsbibliothek ( Bild ), einer Plattformphysik-Engine , einer pixelweisen Definition der Sichtbarkeit und vielem mehr (viele Gifs);
- After Hours Game Development ( Diskussion ) - eine Geschichte über eine Hobbyentwicklung und Struktur eines DF-ähnlichen Spiels;

In einer Zeile
- Zu den IntelliJ-Rust- Updates im Januar ( Nr. 90 , Nr. 91 ) gehören: Unterstützung für das Umbenennen von Abhängigkeiten in Cargo.toml , anfängliche Unterstützung für Makro 2.0 , Schnellkorrektur "Make mutable" ( GIF ), Refactoring von "Introduce Parameter" ( GIF ) und Typinferenz zum Ausprobieren von Blöcken und Generatoren ;
- WebRender wurde auf crates.io veröffentlicht ( Diskussion ) - jetzt wird es einfacher sein, andere Projekte damit zu machen;
- dtolnay / request-for-implementation ( Diskussion ) - eine Liste von "Paketen, die nicht existieren, aber sollten" mit einer ziemlich detaillierten Beschreibung der Ideen und Informationen darüber, wo nach Hilfe und Mentoring gesucht werden kann;
- Rust ist jetzt die 13. beliebteste Sprache auf GitHub ( Diskussion );
- John Carmack unterrichtet Rust ( Diskussion );
- Meine Erfahrung mit der Konvertierung einer Python-Bibliothek in Rust ( Diskussion ) - ein Bericht über das Umschreiben der gesamten Python-Bibliothek in Rust (Entwicklungszeit ist erheblich länger, aber es gibt nicht viele Probleme mit Optimierungen);
- Rust Multi-Screen-Spickzettel für Anfänger ( Diskussion ) - LMB für Drag & Drop;
- Ist es Zeit, das Betriebssystem in Rust neu zu schreiben? ( Diskussion ) - Eine Präsentation mit QCon , bei der Sie nicht versuchen sollten, etwas Großes auf Rust gleichzeitig umzuschreiben. Sie müssen die Erstellung und Implementierung kleiner, nützlicher und qualitativ hochwertiger rostiger Bausteine durchlaufen.
- Die Zusammenstellung von ripgrep 0.10 (und seinen Abhängigkeiten) in Debian ist jetzt reproduzierbar ( Diskussion ) - dies ist wichtig, damit Rostpakete in andere Ökosysteme eindringen können.
- / r / rust: "Deine Lieblings-Rust-Tricks?" - Diskussion mit allen möglichen Rosttricks und nicht offensichtlichen Tricks;
- / r / rust: Rost im Benchmarks-Spiel ist im Durchschnitt 3% schneller als C ++ und 4% langsamer als C " - es schleicht sich langsam an, aber bei Benchmarks ist alles immer kompliziert und mehrdeutig;
- Bericht "Rust mit Geschwindigkeit - Aufbau einer schnellen gleichzeitigen Datenbank" ( Diskussion ) - über den Aufbau einer schnellen Multithread-Datenbank auf Rust;
- librsvg dvizhuha: ein Diagramm des "rostenden" librsvg , ein detaillierterer Bericht über den Status des Prozesses und ein separater Bericht über die Vereinfachung der Arbeit mit GObject von Rust ;
- Red Hat Developer: Beschleunigen Sie Ihren Python mit Rust ( Diskussion ) - wie und warum Sie Python-Code mit Rust erweitern, Vergleich mit der Lösung eines Problems mit numpy, Auswahl von Links zum weiteren Eintauchen in die Frage;
- QtCreator und seine Verwendung als IDE für Rust ;
- / r / rust: Erstellen von JavaScript-Entwicklungstools mit Rust - Einführung von drei "Rusty ECMAScript" -Paketen - Scanner (RESS) , Syntaxanalysator (RESSA) , Writer (RESW) - zur Entwicklung von JavaScript-Entwicklungstools für Rust;
- Wenn Rust sicherer ist als Haskell ( Diskussion ) - Sicherheitsvergleich von Rust und Haskell;
- / r / Rostdiskussion über die Aussichten von Rost gegen Go im Kontext des Webs ;
- / r / rust: "Wo wird Rust in 3 Jahren sein?" - In Bezug auf die Zukunft von Rust finden sich in den Kommentaren interessante Meinungen.
Neue und aktualisierte Pakete
- Ropey ( Diskussion ) ist eine effiziente und utf8-kompatible Implementierung der Rope / Cord- Datenstruktur, die häufig in Texteditoren verwendet wird.
- Hexyl ( Diskussion ) - ein Hex-Viewer für die Konsole, der aktiv Farben verwendet, um Gruppen von Hexadezimalwerten anzuzeigen.
- Cargo-Cache ( Diskussion ) - Ermöglicht das selektive Reinigen von Teilen
~/.cargo/
; - typetag ( Diskussion ) - ein Makroattribut , das eine schmerzlose Serialisierung von
&dyn Trait
und Deserialisierung von Objekten vom Typ Box<dyn Trait>
; - dness ( Diskussion ) - dynamischer DNS-Client;
- Regex-Automaten ( Diskussion ) - Bietet eine einfache Benutzeroberfläche für die Arbeit mit regulären Ausdrücken (im Gegensatz zu
regex
), die weniger praktisch ist, aber eine detaillierte Steuerung des Speicherverbrauchs und der Suchzeit ermöglicht. verwendet DFA und unterstützt die Serialisierung; - Stretch ( Code , Diskussion ) - eine rostige Implementierung von Flexbox, die in Shard verwendet wird (wie es in Android und iOS eingepfercht ist);
- arbalest ( Diskussion ) ist eine Alternative zu regulärem Arc, aber schwache Links verbieten nicht, den Datenzugriff zu ändern.
- Toshi ( Diskussion ) - eine Volltextsuchmaschine ähnlich Elasticsearch (eine Alternative zu Tantivy , die sich auf Lucene konzentriert);
- Infernorostiger Port eines Perlmutt-Visualisierers für Flamegraph-Profilerstellungsergebnisse, der Entwicklungsprozess wird in Form von Streams dargestellt ( Video 1 , Video 2 );
- DataFusion v0.6 ( Diskussion , Code ) - die erste Version der In-Memory-Abfrage-Engine, die die offizielle Rust-Implementierung von Apache Arrow verwendet ;
- load-expand v0.4 ( Diskussion ) - Der Makro- Expander unterstützt jetzt die Arbeit mit bestimmten Modulen / Typen / Funktionen.
- fluent-rs v0.5 ( Diskussion ) - Eine verrostete Implementierung des modernen Fluent- Lokalisierungssystems hat den Ansatz zur Ressourcenzuweisung aktualisiert, einen Parser ohne Kopie erhalten und die Dokumentation verbessert.
- Tokei v9.0 ( Code , Diskussion ) - Das Programm zum Zählen von Zeilen im Quellcode erhielt Unterstützung für Konfigurationsdateien. Die Anzahl der verständlichen PLs wurde auf 170 erhöht.
- load-crev v0.4 ( Diskussion ) - Das UX-System für verteilte Paketüberprüfungen wurde zur Vereinfachung neu gestaltet.
- Smithay v0.2 ( Code , Diskussion ) - Amboss- Beispiel wurde der Bibliothek hinzugefügt, um Fenstermanager für Wayland zu entwickeln , die Unterstützung für Farben und XWayland zu verbessern, DRM neu geschrieben;
- oxide-auth v0.4 ( Diskussion ) - Die OAuth2-Bibliothek wurde vollständig neu geschrieben und ist jetzt mit Actix, Rocket und Rouille kompatibel.
Habr hat kürzlich die Nüsse gelockert und erlaubt nun, auf externe Community-Ressourcen zu verweisen. Daher lade ich alle ein, sich mit Rust vertraut zu machen, um Hilfe und Rat in russischsprachigen Ressourcen zu Rust zu suchen:
Das ist alles, danke fürs Zuschauen!
Wenn ich keinen wichtigen Link oder Ereignis hinzugefügt habe, können Sie ihn gerne in den Kommentaren einfügen. :) :)
KDPV hat von hier aus die restlichen Bilder von den Standorten der jeweiligen Projekte aufgenommen.