🦀

Rustで書かれた、既存のソフトウェアの代替一覧を作った

2021/06/08に公開1

Rustで既存のソフトウェアを再実装することは「Rewrite It In Rust」と言われたりしますが、
最近はfindの代替である fd やlsの代替である exa などといったUnixコマンドのRust実装がよく見られます。

このようなUnixコマンド以外にも、Goで書かれたコンテナランタイム runc のRust実装である youki や既存のNodeバージョンマネージャーである nvm よりも200倍速い[1]とされている fnmLemmy というRustで書かれた reddit の代替などがあります。

また、僕自身もRubyのバージョンマネージャーである rbenv のRust実装である frum を作ったりしています。

https://github.com/TaKO8Ki/frum

作ったもの

今回は、こういったRustで書かれた、既存のソフトウェアの代替の一覧を作ってみました。

RustでOSSを作る際にこういった一覧があると、既に実装されているものを避けて作ることができていいなと思ったのがこれを作った一番の理由です。

Hacker Newsreddit でそれなりにupvoteをしてもらえたおかげでPRをたくさん頂いたので、割と充実したリストになってきていると思います。

https://github.com/TaKO8Ki/awesome-alternatives-in-rust

あまり知られてなさそうなRust実装を紹介する

先ほど挙げたfdやexaなどといった有名なものは置いておいて、せっかくなのであまり知られてなさそうで個人的に面白いと思ったRust実装をピックアップして紹介します。

Pleco

Stockfish というチェスエンジンのRust実装です。

Rustの効率性を利用して、現代のチェスエンジンの速度に匹敵するチェスAIを作ることを目的としているそうです。

xcp

cpの拡張コマンドです。コピー時にプログレスバーを表示したり、.gitignoreを解釈してコピーを実行してくれるのが面白いなと思いました。

Paru

機能満載なAURヘルパー(pacmanのラッパー)です。yay の代替コマンドです。

好みのファイルマネージャを指定してレビューできたり、検索順序を反転させたりすることができます。

asciicast

最後に

以上です。次はRustで作るバージョンマネージャーみたいな記事を書こうかなと思ってます。

今後もRustでOSS開発頑張ります!

脚注
  1. ベンチマーク ↩︎

Discussion