Rustで書かれた、既存のソフトウェアの代替一覧を作った
Rustで既存のソフトウェアを再実装することは「Rewrite It In Rust」と言われたりしますが、
最近はfindの代替である fd やlsの代替である exa などといったUnixコマンドのRust実装がよく見られます。
このようなUnixコマンド以外にも、Goで書かれたコンテナランタイム runc のRust実装である youki や既存のNodeバージョンマネージャーである nvm よりも200倍速い[1]とされている fnm や Lemmy というRustで書かれた reddit の代替などがあります。
また、僕自身もRubyのバージョンマネージャーである rbenv のRust実装である frum を作ったりしています。
作ったもの
今回は、こういったRustで書かれた、既存のソフトウェアの代替の一覧を作ってみました。
RustでOSSを作る際にこういった一覧があると、既に実装されているものを避けて作ることができていいなと思ったのがこれを作った一番の理由です。
Hacker News や reddit でそれなりにupvoteをしてもらえたおかげでPRをたくさん頂いたので、割と充実したリストになってきていると思います。
あまり知られてなさそうなRust実装を紹介する
先ほど挙げたfdやexaなどといった有名なものは置いておいて、せっかくなのであまり知られてなさそうで個人的に面白いと思ったRust実装をピックアップして紹介します。
Pleco
Stockfish というチェスエンジンのRust実装です。
Rustの効率性を利用して、現代のチェスエンジンの速度に匹敵するチェスAIを作ることを目的としているそうです。
xcp
cpの拡張コマンドです。コピー時にプログレスバーを表示したり、.gitignore
を解釈してコピーを実行してくれるのが面白いなと思いました。
Paru
機能満載なAURヘルパー(pacmanのラッパー)です。yay の代替コマンドです。
好みのファイルマネージャを指定してレビューできたり、検索順序を反転させたりすることができます。
最後に
以上です。次はRustで作るバージョンマネージャーみたいな記事を書こうかなと思ってます。
今後もRustでOSS開発頑張ります!
Discussion
PGP/GnuPG の別実装とも言える Sequoia-PGP も Rust 製です!