libarchive_oxideはじめました

Share
libarchive_oxideはじめました

libarchiveをRustで作り直しています。

GitHub - P4suta/libarchive_oxide: Unified safe-Rust archive library with a no_std core
Unified safe-Rust archive library with a no_std core - P4suta/libarchive_oxide
libarchive_oxide aims to become a safe artifact engine for OCI layers, packages, and mainstream archive CLI workflows. It is not a promise to clone every historical libarchive format or symbol.

The preferred product surface is a high-level Rust engine with inspect -> plan -> apply/create, finite resource limits, extraction policy, capability-based filesystems, bounded streaming events, and range sources. Low-level readers, writers, and sans-I/O state machines remain available for specialized integrations.

ということで、要するにめちゃくちゃモダンでイケイケなlibarchiveを作ろうぜ!というパッションです。

一方で、OS依存部分や実際にクラウドで採用されるためのSDK部分などについてはプロジェクトの負担が大きすぎるので夢見てはいますが、実質的にはベンダーとの協力を仰がなければならない部分であり、私としましては積極的な協力が行えるような下地の準備に全力を注ぎたいと思います。

とはいえ、まずはむちゃくちゃ使いやすいモダンでイケイケなlibarchiveを作りこむという意味で、coreに集中したいと思います。

Registry clients, cloud SDK implementations, GUIs, dynamic plugin ABIs, complete libarchive source compatibility, and silent OS-metadata loss are not part of the engine. Historical long-tail formats can graduate as external providers when they have real usage data, ownership, and conformance corpora.

Read more

青空文庫の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
Find My Files

Find My Files

Windowsにおける爆速ファイル検索アプリの定番といえば、Everythingです。 voidtoolswebhost2 その高速さの理由は、NTFSの仕組みをうまく活用していることにあります。Windowsで一般的に使われているNTFSには、ファイル情報を管理するマスターファイルテーブル(MFT)と、ファイルシステムの変更履歴を記録するUSN Journalがあります。Everythingはこれらを利用することで、初回に高速にファイル一覧を構築し、その後はUSN Journalを監視してリアルタイムにインデックスを更新しています。そのため、数百万ファイル規模の環境でも非常に高速な検索を実現しています。 もちろん、単純にファイル名やパスを保持するだけでは、大量のメモリを消費してしまいます。また、数百万件ものファイルから一瞬で目的のものを見つけるためには、メモリ効率の高いデータ構造や高速な検索アルゴリズムなど、さまざまな工夫が必要になります。 このように、Everythingは見た目こそシンプルですが、中身はかなり高度なことをやっているソフトウェアです。 なお、Everyth

By Sakashita Yasunobu
Rust libfprint?

Rust libfprint?

指紋認証は便利で快適です。 iPhoneはFaceIDを使うので別次元の快適さですが、PCでは指紋認証が現役です。 Windows/Macはいざ知らずいざ知らず、Linuxで指紋認証デバイスを使おうと思ってもPlug-and-Playというわけにはいきません。 それどころか、Linuxでの指紋認証サポートは限定的です。 Linuxではfprint projectが主体となって(事実上のデファクトとして)指紋認証デバイスのサポートを行っていますが、指紋認証デバイスの仕様をメーカーが公開していない以上、指紋認証デバイスAを持つユーザーが自分でドライバAを書くほかありません。 メンテナーによる骨の折れる作業と血のにじむ努力によって多数のデバイスがLinuxでサクッと動くようになり、Linux Mintなどの一部ディストロではGUIから気楽に使えるようになったので、対応デバイスをお持ちの方にとってはとてもいい時代になりました。 しかし、まあ、内部実装が歴史的につらい事情などなど、現代的に作り直すことで歴史から解き放ちつつも、共存の道を模索するプロジェクトとしてfprintdというプ

By Sakashita Yasunobu