💭

FileZen と VOTIRO の OSS 代替を目指す!Rust で極速のファイル受け渡し&ストリーミング無害化(CDR)エンジン「禊

に公開

🛑 はじめに:日本の IT 現場を苦しめる「ファイルの壁」

日本の自治体や金融機関、医療機関では、総務省のガイドラインに基づく**「三層分離(ネットワーク分離)」**が徹底されています。
しかし、インターネット系から業務内網へファイルを「受け渡す」際、以下のような痛みに直面したことはありませんか?

  • FileZen などのアプライアンスが高価すぎる、またはハードウェアに縛られる。
  • VOTIRO などの無害化(CDR)エンジンが、GB 級の大ファイルや複雑な PDF を処理する際にメモリをバカ食いし、システムがフリーズ(OOM)する。
  • 既存のレガシーな Java/PHP システムを改修するコストやリスクが高すぎる。

これらを解決するために、Rust の圧倒的な性能を活かした OSS エンジン 「Misogi(禊)」 を開発し、かなりコードが形になってきたので共有します。


🦀 Project Misogi(禊)とは?

Misogi は、Rust で書かれた、Headless(API ファースト)の極速・安全なファイル受け渡し&ストリーミング無害化エンジンです。

💡 技術的な破壊点(ここが極上)

  1. 0コピーのストリーミング解析 (nom 庫の活用)
    PDF や ZIP などの大ファイルをメモリに丸ごと載せるのではなく、ストリーム(Chunk)の状態でリアルタイムにバイトコードを解析・無害化(PDF の JavaScript 除去など)します。これにより、メモリ使用量は常に数十MB以下に抑えられます。
  2. 同ポートでの Axum (HTTP/REST) と Tonic (gRPC) のマルチプレクシング
    日本の政企ネットワークでは、ファイアウォールのポートを1つ開けるだけでも数ヶ月の承認がかかります。そのため、1つのポートで両方のプロトコルを同時に待ち受ける設計にしました。
  3. レガシーに優しい「CLI 1秒統合」
    一番こだわったのは**「既存のレガシーシステムを1行も書き換えない」**ことです。同梱の misogi-cli を使えば、シェルスクリプトやバッチファイルから1行叩くだけで、無害化と受け渡しが完了します。
# 既存の Java や PHP システムからバッチで呼び出すだけ
misogi-cli --addr 10.0.0.1:8080 --file ./shorui.pdf --approver boss_id

Discussion