curlの開発者、Daniel Stenberg氏は12月21日(現地時間)、「Dropping hyper」と題したブログ記事を公開し、curlから、hyperと呼ばれるRustで書かれたHTTPバックエンドのサポートを削除することを発表しました。
ブログ記事によると、curlには4年前に、Rustで書かれたhyperと呼ばれるHTTPバックエンドのサポートが追加されたとのことです。
ネイティブ実装の代わりにcurl/libcurlで使用できる代替実装を導入し、メモリ安全性を高めるための試みですが、ユーザーからの需要はほとんどなく、開発者も少なく、実験は失敗だったとしています。curlのhyperサポートは95%はうまくいき、ほぼすべてのテストスイートをパスすることはできたものの、最後の数%の完成度を向上させるのは困難だったともされています。
ただしこの実験が全く無駄だったわけではなく、実験を通じてcurlは改善され、HTTPをより厳密に解析して処理できるようになるなどの恩恵があったとのこと。hyper側もこの実験から恩恵をうけてライブラリの改善につながったはずだと説明しています。
curlは現在、Rustで書かれた他のバックエンド(rustlsとquiche)サポートしていますが、これらは実験的なもので、curlのより良い内部APIを使用し、よりクリーンな方法でlibcurlにフックされているとのことです。
Rustはメモリ安全性やパフォーマンスの高さから特にシステムプログラミングの分野で注目を集めているプログラミング言語です。例えば、Linuxカーネルでの採用が進められていたり、fishがRustで書き直されたりと、最近も話題に事欠きませんが、すべての場合でうまくいくわけではないようです。