Pure Rust Webp Implementation

Share
Pure Rust Webp Implementation

webpをPure Rustで実装しました。

GitHub - P4suta/webpkit: Pure-Rust WebP codec (VP8L lossless + VP8, encoder & decoder, no_std, forbid-unsafe)
Pure-Rust WebP codec (VP8L lossless + VP8, encoder & decoder, no_std, forbid-unsafe) - P4suta/webpkit

https://crates.io/crates/webpkit

libwebpよりも使いやすく、モダンな作りになっています。

no_stdなど、汎用的に使えると思います。

Rustで実装をする以上、unsafeがあると意味が薄れてしまいますので、本実装ではunsafeはありません。

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

Read more

nodejsのバグを見つけたのでPRを投げてみた

概要 要するに、node --testで特定のバイナリを標準出力に書くと、テストランナーが固まったり、異常終了したりするバグです。 バグ自体は既知のものだったようで、修正がされていました。 test_runner: infinite loop in FileTest#drainRawBuffer when child stdout contains FF 0F followed by large size bytes · Issue #62693 · nodejs/nodeVersion v25.9.0 (also reproduced on v24.14.1 LTS, v22.21.0 LTS, v23.4.0) Platform Darwin 25.

By Sakashita Yasunobu
青空文庫のParser

青空文庫のParser

青空文庫のParserを作ってます。 GitHub - P4suta/aozora: Pure-functional Rust parser for 青空文庫記法 (Aozora Bunko notation): ルビ, 傍点, 縦中横, 外字, 返り点, indent containers, page breaks.Pure-functional Rust parser for 青空文庫記法 (Aozora Bunko notation): ルビ, 傍点, 縦中横, 外字, 返り点, indent containers, page breaks. - P4suta/aozoraGitHubP4suta Rustで作ってますが、配布物はcargoのほかにnpm/pypiでも入手できます Documentation * Playground — try it in

By Sakashita Yasunobu

イケイケなWinスクショアプリを作りました

パソコンのスクショってなんというか、地味というか、撮ってそのままだと何とものっぺりしていますよね。 特にWindowsだとMacっぽい丸っこい感じとかもなく、無骨だなあと。 ということで、それっぽくおしゃれな背景や角丸を付けておしゃれに撮影をしてくれるスクショアプリを作りました。 GitHubで公開しています。 GitHub - P4suta/Snaply: Snaply — a modern, clean-architecture Windows screenshot tool (WinUI 3 / .NET 10)Snaply — a modern, clean-architecture Windows screenshot tool (WinUI 3 / .NET 10) - P4suta/SnaplyGitHubP4suta ウィンドウ・領域選択・スクリーンのキャプチャができます。 タッチスクリーンなどにも対応しているはずです。 撮影をすると、クリップボードにコピーされ、フォルダーへの保存もされます。

By Sakashita Yasunobu