WebAssembly がブラウザ内処理の「初期値」を変えた
10 年前まで、動画変換や PDF 編集はサーバーに重い処理を肩代わりさせるのが当たり前でした。WebAssembly の普及によって、その前提は崩れています。NoSend Tools が依存している技術スタックを技術観点で整理します。
2010 年代の初期値: 重い処理はサーバーで
10 年ほど前まで、ブラウザで動画を変換する、PDF を編集する、大きな画像から EXIF を読み取る — こうした「重い処理」はサーバーに肩代わりさせるのが当たり前でした。JavaScript の実行速度には限界があり、C / C++ で書かれた成熟したライブラリ (ffmpeg, libheif, qpdf, kuromoji) をブラウザで動かす手段はなかったからです。
結果として、Web アプリケーションの設計はほぼ自動的にサーバーサイド処理に向かい、ユーザーの入力データは一度サーバーへ送られていました。「ブラウザ内で完結させる」ことは、コストではなく実装手段の制約による消去法でした。
WebAssembly が前提を変えた
WebAssembly (WASM) は、C / C++ / Rust などのネイティブコードをブラウザで動かせる、サンドボックス化された低レベル実行環境です。2017 年に主要ブラウザで安定し、2020 年代に入って ffmpeg.wasm や libheif-js、pdf-lib (純 JS) / PDF.js、kuromoji.js、transformers.js (Whisper / RMBG など ML モデル) といった、これまでデスクトップアプリでしか動かなかった機能群が次々とブラウザに揃いました。
NoSend Tools の音声・動画ツールは ffmpeg.wasm を、HEIC デコードは libheif-js を、PDF 操作は pdf-lib / PDF.js を、文字起こしは transformers.js + Whisper モデルを使っています。重要なのは「ライブラリ本体のコード」と「あなたの入力データ」は別物だという点で、ffmpeg.wasm の初回ロード (約 30 MB) や kuromoji 辞書 (約 12 MB) にはあなたのファイル内容は含まれていません。
ブラウザ標準 API だけで足りるツールも多い
ハッシュ計算、JWT 署名検証、Base64 / URL エンコード、画像のリサイズや切り抜き、音声録音、タイムゾーン変換などは WebAssembly すら不要で、ブラウザ標準の API だけで完結します。SubtleCrypto (Web Crypto API)、Canvas / OffscreenCanvas、Web Audio API + MediaRecorder、Intl API + IANA tzdata はすべてブラウザにネイティブに組み込まれている実装です。
これらはセキュリティ上もよく検証された経路で、追加の依存も読み込み時間もありません。「ブラウザ内で完結 = 遅い / 不便」という古い前提が、すでに 2020 年代の半ばには現実と合わなくなっていることを示しています。