Pure Rust Webp Implementation
webpをPure Rustで実装しました。
https://crates.io/crates/webpkit
libwebpよりも使いやすく、モダンな作りになっています。
no_stdなど、汎用的に使えると思います。
Rustで実装をする以上、unsafeがあると意味が薄れてしまいますので、本実装ではunsafeはありません。
また、ちょっとしたことですし、webpに限ったことじゃないのですが、webpにおけるデファクトであるlibwebpではメタデータがデフォで捨てられます。画像ライブラリにとっての至上命題は画像ファイルを小さくすることであり、メタデータだってデータなわけで捨てたほうが当然ファイル容量は削減できるので当然といえば当然であり、ことwebpなどのモダンな画像コーデックとしてはプライバシーという名目で捨てたほうがむしろ合理的ともいえます。一方で、メタデータの中にはexifだけでなくカラープロファイルなどのデータなどもあり利用者としては勝手に捨てられると困るデータもあるわけで、やや標準から外れますが、本実装ではメタデータは標準で捨てない設計としております。