Decimen Optical Transfer:ネット不要でQRコードファイル転送を実現するOSSツール
Decimen Optical Transfer:ネット不要でQRコードファイル転送を実現するOSSツール
Decimen Optical Transferは、スクリーンとカメラだけを使ってデバイス間でファイルを転送するブラウザベースのツールです。ネットワーク接続・アプリインストール・デバイスペアリングが一切不要で、アニメーションQRコードが「光でファイルを送る」仕組みを実現します。フォンテーンコーディング(LTコード)で欠落フレームを自動補完し、128KB/s超の安定した転送スループットを達成しています。
GitHubで急上昇中の decimen-optical-transfer をご紹介します。 スター数 1,724★ を獲得し、DevTool分野で注目されているツールです。
Decimen Optical Transfer とは?
Decimen Optical Transferは、スクリーンとカメラだけを使ってデバイス間でファイルを転送するブラウザベースのオープンソース概念実証(PoC)ツールです。従来のファイル転送はWi-FiやBluetoothなどのネットワーク接続が前提でしたが、このツールはアニメーションQRコードを「光の信号」として使い、カメラで読み取ることで完全にネットワーク不要の転送を実現しています。
特筆すべきは、最大128KB/s(実測)のスループットを達成している点です。これはフォンテーンコーディング(Luby Transform:LTコード)と呼ばれる誤り訂正技術によるものです。送信側は毎フレームをファイルブロックのXOR合成で生成し、受信側はランダムな順序で約K×1.15枚のフレームを集めるだけでファイルを復元できます。フレームが欠落・ぼやけ・重複しても再送信なしに自動補完される仕組みです。
TypeScript・Vite・WebAssembly(zxing-cpp)を組み合わせた洗練された実装で、2026年7月の公開後すでに1,700以上のスターを獲得。Tom's HardwareやSourceForgeにも取り上げられ、国際的に注目を集めています。
こんな人におすすめ:
- エンジニア向け: セキュリティエンジニアがエアギャップ環境でのデータ受け渡しに、またフロントエンドエンジニアがWebAssembly・QR技術の実装例として学習素材に活用できます
- 非エンジニア向け: ネットワーク接続なしにファイルを共有したい場面(展示会・セキュリティ規制環境など)で、ブラウザだけで利用できます
主な機能・特徴
- ネットワーク不要でQRコード経由のファイル転送を実現: Wi-Fi・Bluetooth・USB・ペアリング一切不要
- フォンテーンコーディングで欠落フレームを自動補完: 受信側は任意の順序でフレームを集めるだけでファイル復元が可能
- 128KB/s超の実測スループット: 60fps送信・QR v27(1465バイト/フレーム)設定で達成
- npm install && npm run dev だけで即起動: セットアップは数コマンドで完了
- iOS・Android・デスクトップのブラウザに対応: zxing-cpp(WASM)を使用しSafariの
BarcodeDetector未対応問題を回避
使い方・始め方
インストールと起動
git clone https://github.com/bashalarmistalt/decimen-optical-transfer
cd decimen-optical-transfer
npm install
npm run dev
送信デバイス(PCを推奨)での操作
Viteが起動したら、送信デバイスのブラウザで https://localhost:5173/send/ を開きます。ページを開いた瞬間からアニメーションQRコードの配信が始まります。ディスプレイの輝度を最大にすると読み取り精度が向上します。
受信デバイス(スマートフォン)での操作
Viteがターミナルに表示するネットワークURL(https://<lan-ip>:5173/receive/)をスマートフォンのブラウザで開きます。自己署名証明書の警告が出たら「詳細設定」→「このサイトに進む」(iOS)または「Advanced」→「Proceed」(Android)を選択。「Start camera」をタップしてQRコードに向けると、数秒で転送が完了し受信画像が表示されます。
チューニング設定
| 設定 | デフォルト | 説明 |
|---|---|---|
| 送信FPS | 24 | フレームがディスプレイの2リフレッシュサイクル以上を占める値に設定 |
| バイト/フレーム | 1465(QR v27) | 密なほど高速。受信デバイスのデコード限界内で設定する |
| キャプチャFPS | - | 受信カメラのフレームレート(iOSはexact: 60指定推奨) |
活用事例
セキュリティエンジニアによるエアギャップ環境でのファイル転送
セキュリティエンジニアがエアギャップ(インターネット非接続の隔離)環境のサーバーや隔離PCに診断ツールや設定ファイルを移送する場面で活用できます。USB持ち込みが制限されたセキュリティ施設でも、スマートフォンのカメラとブラウザがあればQRコード経由で安全にファイルを受け渡しできます。
フロントエンドエンジニアの技術学習リソースとして
TypeScript・WebAssembly(zxing-cpp)・getUserMedia API・requestVideoFrameCallbackの高度な組み合わせ実装として、ソースコードの学習価値が非常に高いです。「JS実装でのIEEE-754浮動小数点精度問題」「iOS/Androidのカメラ挙動の違いへの対処法」など実務でも遭遇する落とし穴がドキュメント化されており、現場で役立つ知識を得られます。
類似ツールとの違い・なぜ今このツールか
Decimen Optical Transferと同コンセプトの先行プロジェクトは存在しています。主要な比較を以下に示します。
| ツール | 方式 | ブラウザ動作 | フォンテーンコーディング |
|---|---|---|---|
| Decimen Optical Transfer | QR+フォンテーンコード | ✅ | ✅ |
| txqr(2018年・Go) | QR+フォンテーンコード | ❌(CLIツール) | ✅ |
| airgapped-qr-code-transfer | QR+逐次チャンキング | ✅ | ❌ |
| libcimbar | 独自高密度カラーコード | ❌(専用アプリ必要) | ✅ |
Decimen Optical Transferの強みは「ブラウザのみで動作 × フォンテーンコーディング」の組み合わせです。txqrはフォンテーンコードを使うがCLIツールのためコンパイルが必要。airgapped-qr-code-transferはブラウザ動作するが逐次方式のため欠落フレームが再送を引き起こします。2026年7月という最新のタイミングでの公開と、Tom's Hardwareなど主要メディアへの掲載が急速な注目につながっています。
こんな人に向いている
セキュリティエンジニア・ペネトレーションテスター
エアギャップ環境(インターネット非接続の隔離ネットワーク)での業務を担うセキュリティエンジニアにとって、ネットワーク接続なしにデバイス間でファイルを移送できるこのツールは実用性があります。USB接続やネットワーク共有が制限される環境での診断ツール展開・ログ収集などに活用できます。
Webフロントエンドエンジニア・フルスタックエンジニア
TypeScript・Vite・WebAssembly(zxing-cpp)を組み合わせたモダンなスタックの実装例として学習素材に最適です。特にgetUserMedia・BarcodeDetector・requestVideoFrameCallbackなどのブラウザAPIの実践的な使い方、iOS/Androidのカメラ挙動の違いへの対処法を実際のコードで確認できます。
IoT・組み込みシステム開発者
Raspberry PiやNAS環境など、ネットワーク接続が不安定または制限されたデバイスへのファームウェアやスクリプト転送への応用が期待できます。ブラウザさえ動けばどんなデバイスでも受信側になれる点が特徴です。
使う前に知っておきたいこと
ブラウザ・プラットフォームの制限
Safari(iOS)はBarcodeDetector APIに未対応のため、zxing-cpp(WASM)でデコード処理を行います。Workerへの負荷が増えスループットが低下する場合があります。また、iOSでカメラフレームレートをgetUserMediaにframeRate: {ideal: 60}と指定しても実際に60fpsが得られないことがあります(exact: 60の指定が必要)。
受信側にはHTTPS接続が必須です。getUserMediaはHTTP環境では動作しません(localhostのみ例外)。本番デプロイ時はSSL証明書の取得が必要になります。
セキュリティ上の既知の問題
GitHubの公開Issueにメモリ枯渇DoS脆弱性が報告されています(parseFrameが不整合なtotalLenヘッダを受け入れる問題)。個人・開発環境での利用には問題ありませんが、公開サービスとして運用する場合は修正を確認してから使用することを推奨します。
ライセンス
MIT Licenseを採用しています。商用利用・改変・再配布はいずれも許可されています。ただし著作権表示の保持が必要です。
関連ツール・おすすめサービス
- DigitalOcean — 開発者向けクラウドプラットフォーム。Decimen Optical Transferを自分のサーバーでホストしたり、エアギャップ検証環境を構築するのに最適です
まとめ
Decimen Optical Transferは「光でファイルを運ぶ」というアイデアをブラウザのみで動く実用的なPoCとして実現した、TypeScript製のオープンソースツールです。特にエアギャップ環境でのセキュリティ業務や、WebAssembly・QR技術を深く学びたいフロントエンドエンジニアにとって貴重なリソースです。シングルコントリビューターながら128KB/s超の実測値を持ち、将来のTauri版アプリ化・マルチコードグリッド対応も計画されています。公開Issueのセキュリティ問題に注意しつつ、開発・学習用途での活用を検討してみてください。
この技術を学ぶ
DevToolに興味を持った方には、Udemyのオンラインコースもおすすめです。
- 🎓 関連するDevToolコース一覧 — セール時(最大90%OFF)を狙うとお得です
関連記事
この記事が役に立ったらシェアしてください