mboxShell 1.3:Homebrew、Scoop、Cargoでインストール可能に、インデックスも軽く
mboxShell 1.3.0は、macOS、Linux、Windowsのどれでもコマンドひとつでインストールできるようになりました。Homebrew、Scoop、crates.ioに対応しています。インデックスはメンテナンスの終わった最後の依存関係を外し、サイズは36%小さく、読み込みの速さは変わりません。
MBOXファイルのためのオープンソースのターミナルツールmboxShellの1.3.0を本日公開しました。使っているときには見えないものの、違いのわかる変更がふたつあります。インストールのためにバイナリを手でダウンロードする必要がなくなったこと、そしてメールボックスごとに作るインデックスから、メンテナンスの終わった最後の依存関係がなくなったことです。不具合の修正もふたつ入っています。
いつものパッケージマネージャーでインストール
これまではNixOSとArchを除き、GitHubからバイナリをダウンロードして実行権限を付け、PATH の通ったフォルダーに移すのが普通でした。1.3.0では方法が3つ増えます。
Homebrew(macOSとLinux):
brew install dcarrero/tap/mboxshell
リリースのバイナリと一緒に、シェルの補完とmanページもインストールされるので、man mboxshell がすぐに使えます。次のバージョンからは brew upgrade で更新できます。
Scoop(Windows):
scoop bucket add dcarrero https://github.com/dcarrero/scoop-bucket
scoop install dcarrero/mboxshell
Cargo(crates.io)、Rustが入っている場合:
cargo install mboxshell # ソースからコンパイル
cargo binstall mboxshell # コンパイル済みのバイナリをダウンロード
速いのは cargo binstall です。数分かけてコンパイルする代わりに、GitHubで公開しているものと同じバイナリをダウンロードします。
3つとも、新しいリリースに自動で追随します。これまでの方法もそのままで、mboxShellは引き続きnixpkgs(nix-shell -p mboxshell)とArchのAUR(yay -S mboxshell)にあります。どの方法もREADMEのインストールの項で説明しています。
bincodeを使わない、小さくなったインデックス
メールボックスを初めて開くと、mboxShellはファイル全体を読み、その隣に(書き込めない場合はキャッシュフォルダーに)インデックスを保存します。このおかげで、数GBあるメールボックスでも、次からは最初から最後まで読み直さずに開けます。
このインデックスはこれまで、メンテナンスが終了したRustのライブラリbincodeで書き込んでいました。勧告RUSTSEC-2025-0141に記録されているとおりです。既知の不具合はありませんでしたが、誰もメンテナンスしていない依存関係は、不具合が見つかった日に誰も直してくれません。1.3.0では、エントリーをpostcardで、ヘッダーを独自のコードで、以前と同じレイアウトのまま書き込みます。
あわせてインデックスも小さくなりました。10万通のメールで39.4 MBから25.3 MBへと36%減り、読み込みの速さは変わりません。依存関係をRustのセキュリティ勧告データベースと照合する cargo audit の指摘も、ひとつもなくなりました。
これはインデックス形式のバージョン6ですが、何かをする必要はありません。すでにインデックスがあるメールボックスを1.3.0で初めて開くと、mboxShellは古い形式だと判断して作り直します。このときだけは最初に開いたときと同じだけ時間がかかり、その後はまた速く開けます。
2つの修正
インデックスが読めなくてもメールボックスを開けるようになりました。 インデックスの中身が壊れていると、メールボックスが開けませんでした。いまはインデックスがファイルと合わなくなったときと同じように、mboxShellが作り直します。
メール数が同じ差出人は、いつも同じ順番で表示されます。 stats と stats --json では、メール数が同じ差出人の順番が、実行するたびに入れ替わることがありました。同数の場合は名前順に並べるようにしたので、同じメールボックスで2回実行すればまったく同じ出力になります。結果を diff で比べたり、スクリプトで処理したりする人には役立つはずです。
1.1と1.2で入ったもの
1.0のあと、ここで取り上げていないリリースが4つありました。
- 1.1.0: ヘルプ(
?)に、15個のうち8個ではなく、すべての検索演算子が載るようになりました。F1を押すと、検索バーからでも、その箇所が直接開きます。 - 1.2.0: HTMLへの書き出しで、ロゴや写真などメッセージに含まれている画像が、外部から何も読み込まずに表示されるようになりました。以前は取り除かれていました。
- 1.2.1: 添付ファイルのないメッセージにクリップが付かなくなりました。主にAlpineから送られたメールで起きていた不具合です。
- 1.2.2: 画面からCSVに書き出しても、前回の書き出しを上書きしなくなりました。また、ログ(
mboxshell.log)は所有者だけが読めるようになりました。
入手先
詳しいリリースノートはGitHubのリリースページにあります。mboxShellのページでは、Linux、macOS、FreeBSD、Windows用のバイナリ、コマンド、最近のリリースを紹介しています。
ターミナルよりウィンドウのほうがよければ、同じ考え方はMbox Viewer Proにもあります。Mac、Windows、そしてベータ版のLinuxに対応しています。
Mbox Viewer でアーカイブを開く
Mac・Windows・Linux のネイティブ アプリ。あらゆるサイズの MBOX・EML ファイルを完全にオフラインでストリーミングします。