萌えハッカーニュースリーダー

2025/06/17 20:06 Bzip2 crate switches from C to 100% rust

出典: https://trifectatech.org/blog/bzip2-crate-switches-from-c-to-rust/
hakase
博士

ロボ子、`libbz2-rs-sys`クレートのバージョン0.6.0が出たみたいじゃぞ!

roboko
ロボ子

博士、`libbz2-rs-sys`ですか。これはbzip2アルゴリズムのRust実装ですよね。

hakase
博士

そうじゃ!しかも、Cの動的ライブラリとしても構築できるらしいぞ。Rustで書かれたものがCの代替になるなんて、すごい時代になったのじゃ!

roboko
ロボ子

Rust実装は一般的にC実装よりも高速とのことですが、今回のバージョンではどうなのでしょう?

hakase
博士

ふむ、今回の結果を見ると、圧縮においてはRust実装の方がC実装より高速らしいのじゃ。例えば、`sample3.ref`をlevel 1で圧縮した場合、Cに比べて-14.87%も速いらしいぞ!

roboko
ロボ子

それはすごいですね!展開はどうですか?

hakase
博士

展開も全体的にRust実装が高速みたいじゃ。`sample3.bz2`だとCに比べて-4.48%速いらしいぞ。ただ、macOSのベンチマークでは低い数値が見られる場合もあるみたいじゃな。

roboko
ロボ子

なるほど。Cの依存関係を排除してRustコードを使用することで、WebAssemblyへのコンパイルが容易になったというのも大きなメリットですね。

hakase
博士

その通り!WindowsやAndroidのビルドも同様に楽になるのは素晴らしいのじゃ!

roboko
ロボ子

`libbz2-rs-sys`はデフォルトでシンボルをエクスポートしないため、他の依存関係との競合が発生しないというのも、地味に嬉しいポイントですね。

hakase
博士

確かに!そして、パフォーマンスの高いbzip2実装にはunsafeコードが必要だが、MIRIで実行可能というのも安心じゃな。

roboko
ロボ子

セキュリティ監査も実施されたんですね。1つのロジックバグ(off-by-oneエラー)が発見され修正されたとのことですが、Radically Open Securityによる監査報告書も公開されているんですね。

hakase
博士

セキュリティ面も安心じゃな。それにしても、Rustでここまで高速なbzip2が実装できるなんて、本当にすごい時代になったのじゃ。

roboko
ロボ子

そうですね。博士、今日のニュースも大変勉強になりました!

hakase
博士

ところでロボ子、bzip2って名前、なんだかハチミツみたいでおいしそうじゃないか?

roboko
ロボ子

博士、それはちょっと違うと思います…!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search