CLI-Tool
jdx/aube avatar
jdx/aube

aube: der Paketmanager, der nie vergisst zu installieren

Ein schneller Node.js-Paketmanager. Wiederholte Testbefehle werden bis zu 31x schneller als pnpm und bis zu 5x schneller als Bun ausgeführt.

1.999 Sterne62 ForksRustMIT

Auf einen Blick

Was ist das?
Aube ist ein in Rust geschriebener Node.js-Paketmanager, der vor jedem Skriptlauf die Aktualität der Abhängigkeiten prüft, bestehende Lockfiles liest und schreibt und behauptet, der einzige Manager mit einem Lifecycle-Script-Käfig zu sein. Dieser Artikel behandelt, was die README tatsächlich sagt.
Für wen ist es gedacht?
Die README von Aube macht kühne Behauptungen über Geschwindigkeit und Sicherheit, aber das sind die eigenen Aussagen des Projekts. Die MIT-Lizenz kommt ohne Garantie, und die Repository-Metadaten zeigen ein Projekt mit 1.803 Sternen und 2 offenen Issues.
Darf ich es kommerziell nutzen?
Ja. MIT ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
Wird es noch gepflegt?
Ja. Die letzten Commits kamen vor 2 Tagen.
In welcher Sprache ist es geschrieben?
Hauptsächlich Rust, laut der Sprachstatistik von GitHub.

Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 14. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.

TIEFGEHENDE OPEN-SOURCE-ANALYSE

Das Versprechen: nie vergessen zu installieren

Aube ist ein in Rust geschriebener Node.js-Paketmanager. Der Slogan in der README lautet "Never forget to install", und der Mechanismus dahinter ist die Kernidee: Wenn Sie ein Skript über Aube ausführen, prüft es, ob node_modules für die aktuelle package.json und das Lockfile aktuell ist, installiert bei fehlenden oder veralteten Abhängigkeiten und führt das Skript andernfalls direkt aus. Der Name Aube bedeutet auf Französisch "Morgendämmerung" und wird /ob/ ausgesprochen, wie "ohb". Das Projekt wird von entire.io und 37signals gesponsert, eine vollständige Sponsorenliste ist von jdx.dev verlinkt. Die Dokumentation befindet sich unter aube.jdx.dev.

Leistungs- und Lockfile-Kompatibilitätsbehauptungen

Die README macht spezifische Leistungsbehauptungen auf Basis von Benchmarks, die aus der Doku verlinkt sind: Warme Installationen sind etwa 7x schneller als pnpm und etwa 3x schneller als Bun, und wiederholte Testbefehle laufen bis zu 48x schneller als pnpm und bis zu 4x schneller als Bun. Diese Zahlen sind die eigenen Benchmarks des Projekts; dieser Artikel hat sie nicht unabhängig verifiziert. Aube liest und schreibt auch mehrere bestehende Lockfile-Formate an Ort und Stelle: pnpm-lock.yaml v9 (von pnpm 9-11 geschrieben), package-lock.json v2/v3, npm-shrinkwrap.json, yarn.lock (klassisch und berry) und bun.lock. Für neue Projekte ohne Lockfile erstellt es aube-lock.yaml. Die README weist darauf hin, dass ältere pnpm-v5/v6-Lockfiles vor dem Wechsel aktualisiert werden sollten und Yarn-PnP-Projekte zuerst auf einen node_modules-Linker umgestellt werden müssen.

Sicherheitsstandards und der Lifecycle-Script-Käfig

Die README behauptet, Aube habe "die strengsten Sicherheitsstandards aller Node.js-Paketmanager" und sei der einzige mit einem Lifecycle-Script-Käfig. Standardmäßig werden exotische transitive Abhängigkeiten blockiert, Lifecycle-Skripte warten auf Genehmigung, Vertrauensherabstufungen scheitern beim Auflösen, und brandneue Releases haben ein 24-Stunden-Abkühlfenster. Das Setzen von paranoid: true fügt den Build-Käfig hinzu und verwandelt die weichen Tore in harte Fehler. Der Lifecycle-Script-Käfig führt, wenn aktiviert, genehmigte Paket-Build-Skripte mit einer bereinigten Umgebung und einem temporären HOME aus. Der Käfig ist heute standardmäßig deaktiviert, soll aber in der nächsten Hauptversion standardmäßig aktiviert werden. Die README liefert kein Bedrohungsmodell oder Sicherheitsaudit, daher sind diese Behauptungen als Projektbeschreibung zu betrachten, nicht als unabhängige Garantie.

Installation und Node.js-Versionsverwaltung

Der empfohlene Installationsweg ist über mise: mise use -g aube. Innerhalb eines Projekts können Sie Aube mit mise use aube festlegen. Aube ist auch auf npm als @endevco/aube veröffentlicht, mit den Befehlen npm install -g --ignore-scripts=false @endevco/aube und npx --ignore-scripts=false @endevco/aube --version in der README; das Flag ist nötig, weil das npm-Paket ein Installationsskript zum Abrufen nativer Binärdateien verwendet. Homebrew-Benutzer können aus dem jdx-Tap mit brew install jdx/tap/aube installieren. Aube selbst kann Node.js-Versionen für ein Projekt wechseln: Wenn das Projekt Node über package.json (devEngines.runtime), .nvmrc oder .node-version festlegt, erhält jedes über Aube ausgeführte Skript und jede Binärdatei diese Version. Wenn eine festgelegte Version fehlt, delegiert Aube die Installation an mise, falls verfügbar, andernfalls lädt es von nodejs.org herunter. Shell-Aktivierung leitet node, npm, npx, pnpm, pnpx, yarn und yarnpkg durch Aube, mit Befehlen wie eval "$(aube activate zsh)".

Tägliche Nutzung: Ausführen, Installieren und die aubr/aubx-Shims

Der Hauptweg, Aube zu nutzen, ist das Ausführen des gewünschten Skripts. aubr ist die Kurzform für aube run, und aubr test installiert Abhängigkeiten zuerst, wenn sie veraltet oder fehlend sind, und führt dann das Testskript aus. aube test und aube exec vitest funktionieren ähnlich, wobei aubx die Kurzform für aube dlx für Einmal-Tools ist. Im Alltag brauchen Sie normalerweise kein separates aube install; es ist für Aufgaben wie erste lokale Einrichtung, Aktualisierung eines Lockfiles, Docker-Layer, Produktionsinstallationen oder CI-Flows gedacht. Für CI entfernt aube ci node_modules, überprüft, ob das Lockfile aktuell ist, und installiert sauber. Es gibt auch aube install --lockfile-only und aube install --prod. Workspaces werden unterstützt, einschließlich des workspace:-Protokolls und dem Lesen/Schreiben von pnpm-workspace.yaml oder aube-workspace.yaml. Die README enthält eine Liste häufiger Befehle: aube add, remove, update, list, why, outdated, audit, pack, publish, link, unlink, config get registry, store path, store prune und mehr.

Abhängigkeitsskripte, Paketlayout und Befehlsoberfläche

Aube überspringt standardmäßig Lifecycle-Skripte von Abhängigkeiten, außer für Pakete auf einer eingebauten Liste vertrauenswürdiger Abhängigkeiten. Sie können Pakete, die Build-Skripte benötigen, mit aube approve-builds genehmigen und übersprungene mit aube ignored-builds anzeigen. Für genehmigte Pakete führt jailBuilds: true Lifecycle-Skripte mit bereinigter Umgebung und temporärem HOME aus, und Paketglobs in jailBuildPermissions oder jailBuildExclusions erlauben bestimmte Umgebungsvariablen, Pfade, Netzwerk oder vollständigen Opt-out. Das Paketlayout ist isoliert: Pakete werden über node_modules/.aube/ verlinkt, und Paketdateien werden einmal in $XDG_DATA_HOME/aube/store/ (Standard ~/.local/share/aube/store/) gespeichert. So können mehrere Projekte Paketdateien teilen und Speicherplatz sparen. Aube entspricht auch der Laufzeitoberfläche von pnpm 11: aube runtime set node <version> und aube runtime list, und aube node führt Node über den Resolver aus. Einige pnpm-Befehle sind absichtlich nicht im Fokus: setup und self-update gehören in Werkzeuge wie mise, und Registry-Kontohelfer wie whoami, token, owner, search, pkg und set-script sind Kompatibilitäts-Stubs, die auf den npm-Befehl verweisen.

Lizenz und Projektmetadaten

Das Projekt ist unter der MIT-Lizenz lizenziert, Copyright (c) 2026 jdx.dev. Die Lizenz gewährt das Recht, Kopien der Software zu verwenden, zu kopieren, zu modifizieren, zu verschmelzen, zu veröffentlichen, zu verteilen, zu unterlizenzieren und zu verkaufen, und stellt die Software "wie sie ist" ohne jegliche Garantie bereit. Der Lizenztext erwähnt keine Sicherheitsgarantien, Support oder Wartungszusagen. Die Repository-Metadaten listen 1.803 Sterne, 55 Forks, 2 offene Issues, und das Projekt ist nicht archiviert. Die README dankt Namespace für die Bereitstellung von CI und listet jdx als Entwickler. Die Dokumentation und Benchmarks des Projekts sind aus der README verlinkt. Für die Einführung ist ein isoliertes Projekt mit `aube install`, `aube approve-builds` und `aube test` aussagekräftiger als ein allgemeiner Geschwindigkeitsvergleich. Dabei sollten `node_modules/.aube/`, das Lockfile und die Behandlung übersprungener Lifecycle-Skripte kontrolliert werden; die Benchmarkwerte stammen aus der README.

Redaktionelles Fazit

Die README von Aube macht kühne Behauptungen über Geschwindigkeit und Sicherheit, aber das sind die eigenen Aussagen des Projekts. Die MIT-Lizenz kommt ohne Garantie, und die Repository-Metadaten zeigen ein Projekt mit 1.803 Sternen und 2 offenen Issues. Ob die Leistungszahlen halten, ist mit den verlinkten Benchmarks zu überprüfen. Für die Einführung ist ein isoliertes Projekt mit `aube install`, `aube approve-builds` und `aube test` aussagekräftiger als ein allgemeiner Geschwindigkeitsvergleich. Dabei sollten `node_modules/.aube/`, das Lockfile und die Behandlung übersprungener Lifecycle-Skripte kontrolliert werden; die Benchmarkwerte stammen aus der README.

Offizielle Quellen

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community-Notizen

Community-Notizen