mboxShell 1.3 : installation avec Homebrew, Scoop ou Cargo, et un index allégé
mboxShell 1.3.0 s'installe désormais en une seule commande sous macOS, Linux et Windows, avec Homebrew, Scoop ou depuis crates.io. Et son index perd sa dernière dépendance non maintenue : 36 % plus léger, chargé tout aussi vite.
mboxShell, notre outil libre en ligne de commande pour les fichiers MBOX, est passé aujourd’hui en 1.3.0. Cette version apporte deux changements qu’on ne voit pas en l’utilisant mais qu’on remarque : l’installer ne demande plus de télécharger un binaire à la main, et l’index qu’il crée pour chaque boîte perd la dernière dépendance non maintenue qui lui restait. Elle corrige aussi deux choses.
L’installer avec le gestionnaire de paquets que vous utilisez déjà
Jusqu’ici, sauf sous NixOS et Arch, il fallait télécharger le binaire sur GitHub, le rendre exécutable et le déplacer dans un dossier du PATH. La 1.3.0 ajoute trois voies.
Homebrew, sous macOS et Linux :
brew install dcarrero/tap/mboxshell
Le binaire de la version s’installe avec l’autocomplétion du shell et la page de manuel, si bien que man mboxshell fonctionne tout de suite. Les versions suivantes arrivent avec brew upgrade.
Scoop, sous Windows :
scoop bucket add dcarrero https://github.com/dcarrero/scoop-bucket
scoop install dcarrero/mboxshell
Cargo, depuis crates.io, si Rust est installé :
cargo install mboxshell # compile depuis les sources
cargo binstall mboxshell # télécharge le binaire déjà compilé
cargo binstall est la voie rapide : il récupère le même binaire que celui que nous publions sur GitHub au lieu de passer quelques minutes à compiler.
Les trois suivent d’elles-mêmes chaque nouvelle version. Et les voies existantes restent : mboxShell est toujours dans nixpkgs (nix-shell -p mboxshell) et dans l’AUR d’Arch (yay -S mboxshell). Toutes sont expliquées dans la section d’installation du README.
Un index plus petit, sans bincode
La première fois que vous ouvrez une boîte, mboxShell la lit en entier et enregistre un index à côté (ou dans le dossier de cache s’il ne peut pas écrire là). Grâce à cet index, la boîte s’ouvre ensuite sans être relue du début à la fin, même si elle pèse plusieurs gigaoctets.
Cet index était écrit avec bincode, une bibliothèque Rust qui n’est plus maintenue, comme le consigne l’avis RUSTSEC-2025-0141. Elle n’avait aucun défaut connu, mais une dépendance que personne ne maintient, personne ne la corrigera le jour où elle en aura un. La 1.3.0 écrit les entrées avec postcard et l’en-tête à la main, avec la même disposition qu’avant.
Au passage, l’index s’est allégé : pour 100 000 messages, il passe de 39,4 Mo à 25,3 Mo, soit 36 % de moins, et il se charge tout aussi vite. cargo audit, qui confronte les dépendances à la base des avis de sécurité de Rust, ne signale plus rien du tout.
C’est la version 6 du format d’index, et vous n’avez rien à faire. La première fois que la 1.3.0 ouvre une boîte qui avait déjà un index, mboxShell voit qu’il est à l’ancien format et le reconstruit. Cette ouverture-là prend autant de temps que la toute première ; ensuite, tout redevient rapide.
Deux corrections
Un index illisible n’empêche plus d’ouvrir la boîte. Si le contenu de l’index était abîmé, la boîte ne s’ouvrait pas. mboxShell le reconstruit désormais, comme il le faisait déjà quand l’index ne correspond plus au fichier.
Les expéditeurs à égalité sortent toujours dans le même ordre. Dans stats et stats --json, deux expéditeurs avec le même nombre de messages pouvaient échanger leur place d’une exécution à l’autre. Les égalités sont maintenant triées par nom, et deux exécutions sur la même boîte donnent exactement la même sortie. De quoi satisfaire quiconque compare des résultats avec diff ou les traite dans un script.
Ce qu’ont apporté la 1.1 et la 1.2
Depuis la 1.0, quatre versions sont sorties sans que nous en parlions ici :
- 1.1.0 : l’aide (
?) liste tous les opérateurs de recherche, et non 8 sur 15, etF1l’ouvre directement à cet endroit, y compris depuis la barre de recherche. - 1.2.0 : les exports HTML affichent les images que le message contient, comme des logos ou des photos, sans rien télécharger de l’extérieur. Avant, elles étaient retirées.
- 1.2.1 : le trombone n’apparaît plus sur les messages sans pièce jointe, un bug visible surtout avec les courriels envoyés depuis Alpine.
- 1.2.2 : exporter en CSV depuis l’interface n’écrase plus l’export précédent, et le journal (
mboxshell.log) n’est lisible que par son propriétaire.
Où le trouver
Les notes complètes sont sur la page de la version sur GitHub. La page de mboxShell propose les binaires pour Linux, macOS, FreeBSD et Windows, les commandes et les dernières versions.
Et si vous préférez une fenêtre à un terminal, la même idée vit dans Mbox Viewer Pro, pour Mac, Windows et, en bêta, Linux.
Ouvrez votre archive avec Mbox Viewer
Application native pour Mac, Windows et Linux. Lit en streaming des fichiers MBOX et EML de toute taille, entièrement hors ligne.