Brush v0.4.0

Brush v0.4.0

Brush ist eine Kommandozeile, die in Rust geschrieben wurde und POSIX- und Bash-KompatibilitĂ€t mit Sicherheitsgarantien fĂŒr den Speicher und hoher Leistung kombiniert. Das Projekt zielt darauf ab, eine vollstĂ€ndige Alternative zu herkömmlichen Shells zu werden, indem es ermöglicht, bestehende Skripte und .bashrc nahezu ohne Änderungen auszufĂŒhren. Diese Version vereint mehrere Monate Arbeit und ĂŒber 200 zusammengefĂŒhrte Pull-Requests, wodurch die Shell erheblich in Richtung einer vollstĂ€ndigen Ersetzung von Bash und POSIX-kompatiblen Umgebungen vorangetrieben wird.

Die Hauptentwicklungsschwerpunkte in dieser Version sind:

  • Bash-KompatibilitĂ€t: set -e, set -u, pipefail, failglob, ERR-Handler, Co-Prozesse und vieles mehr wurden hinzugefĂŒgt;
  • ZuverlĂ€ssigkeit: die Behandlung von AusnahmefĂ€llen wurde verbessert – geschlossene KanĂ€le, fehlerhafte Ausgaben, nicht-UTF8-Historien und andere;
  • Plattformen: erweiterte UnterstĂŒtzung fĂŒr macOS (Arbeiten als Login-Shell), verbesserte FunktionalitĂ€t unter Windows, FreeBSD, Android und 32-Bit-Systemen;
  • InteraktivitĂ€t: optionale TOML-Konfigurationen, preexec/precmd-Hooks, verbesserte UnterstĂŒtzung fĂŒr Readline-Makros und mehr wurden hinzugefĂŒgt.

Wichtige Verbesserungen in der Bash-KompatibilitÀt

Die wichtigsten Verbesserungen dieser Version umfassen eine erhebliche Erweiterung der UnterstĂŒtzung fĂŒr Bash-Funktionen. Fehlerverwaltung:

  • set -e (errexit) – sofortiger Ausstieg bei einem Fehler;
  • set -u (nounset) – Fehler beim Zugriff auf eine nicht deklarierte Variable;
  • pipefail – der RĂŒckgabecode der Pipeline wird durch den zuletzt fehlgeschlagenen Befehl bestimmt;
  • failglob – das Fehlen von Übereinstimmungen fĂŒr einen Glob-Ausdruck fĂŒhrt jetzt zu einem Fehler.

Handler (Traps) und Koprozesse:

  • Fehler-Handler ERR – ermöglicht das AusfĂŒhren von Befehlen bei Auftreten eines Fehlers;
  • Koprozesse (coproc) – Starten von Hintergrundprozessen mit bidirektionalem Austausch.

Eingebaute Befehle:

  • verbesserte Verarbeitung vieler arithmetischer Konstruktionen, einschließlich Literalen mit hohem Basiswert, ÜberlĂ€ufen und Zuweisungsoperatoren;
  • Fehlerbehebungen und Verbesserungen betrafen die eingebauten Befehle: caller, read, getopts, printf und andere.

Erweiterte PlattformunterstĂŒtzung:

Die Version v0.4.0 macht die Shell auf einem breiteren Spektrum von GerĂ€ten verfĂŒgbar:

  • macOS: Ein Problem wurde behoben, wodurch die Shell beim Anmelden hĂ€ngen blieb. Jetzt kann brush als Login-Shell verwendet werden;
  • Windows: Verbesserungen bei der Pfadverarbeitung, eine Emulation von /dev/null wurde hinzugefĂŒgt, was die Benutzerfreundlichkeit unter Windows erheblich steigert;
  • FreeBSD und Android: UnterstĂŒtzung fĂŒr den Build auf diesen Plattformen;

Interaktive Funktionen und API

  • Konfiguration: UnterstĂŒtzung fĂŒr eine optionale TOML-Konfigurationsdatei (~/.config/brush/config.toml) fĂŒr spezifische Einstellungen von brush hinzugefĂŒgt;
  • Anpassung: zsh-Stile fĂŒr preexec/precmd Hooks implementiert (hinter einem experimentellen Flag), nĂŒtzlich zur Erstellung benutzerdefinierter Eingabeaufforderungen und Zeitmesswerkzeuge;
  • API fĂŒr Entwickler: Der Shell-Typ ist jetzt parametrisiert mit Erweiterungen (ShellExtensions), die es Entwicklern ermöglichen, eigene integrierte Befehle hinzuzufĂŒgen und das Verhalten von Variablen zu Ă€ndern, ohne das Projekt forken zu mĂŒssen;
  • Verschiedenes:
    • Verbesserte UnterstĂŒtzung fĂŒr Readline-Makros zur KompatibilitĂ€t mit starship, atuin und fzf (github.com);
    • Möglichkeiten zur Serialisierung von AST und Shell-Zustand ĂŒber serde hinzugefĂŒgt;
    • Jetzt sind in brush-parser und brush-core Funktionen von serde verfĂŒgbar, um die Serialisierung von AST und Shell-Zustand zu ermöglichen.

Quelle: linux.org.ru

ZuverlĂ€ssiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen đŸ”„ ZuverlĂ€ssiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster