Send a file from one device to another in the same room with no internet connection or cable.
Transfer text or small files between an air gapped machine and a normal computer using only a camera and a screen.
Build a command line workflow that pipes text into a QR stream for another device to scan and read.
| infrost/raptorqr | micheleriva/zbsearch | boob025/peace-equalizer-apo | |
|---|---|---|---|
| Stars | 131 | 131 | 134 |
| Language | TypeScript | TypeScript | TypeScript |
| Setup difficulty | moderate | easy | easy |
| Complexity | 3/5 | 3/5 | 1/5 |
| Audience | developer | developer | general |
Figures from each repo's GitHub metadata at analysis time.
Needs pnpm and a build step for the WASM packages before the CLI or web app run locally.
RaptorQR moves files and text between two devices using animated QR codes instead of a network connection, Bluetooth, or a cable. One device displays a stream of QR codes that change rapidly on screen, and the other device points its camera at the screen to read them and rebuild the original file or text. Everything happens locally in the browser or in a terminal, so nothing is uploaded to any server in between. Under the hood, the project uses a fountain code called RaptorQ, based on an existing Rust implementation compiled to WebAssembly, to break data into packets that can be reconstructed even if some QR frames are missed or misread. It pairs this with a fast QR rendering library and a QR scanning library, both also compiled to WebAssembly, to reach a high transfer speed. The README reports measured examples such as a 95 kilobyte file transferring in well under a second and a 6.5 megabyte file transferring in about 36 seconds, tested using an iPhone camera as the scanner, and states the new pipeline is more than 50 times faster than an earlier JavaScript only version of the same idea. The project is organized as several packages: a core library that handles packaging, scheduling, rendering, and decoding, a command line tool for sending files or piped text from a terminal, and two lower level WASM packages for QR rendering and RaptorQ encoding and decoding on their own. There is also a browser based web app, with a live demo linked in the README, that supports offline use once loaded, since it installs a service worker. To develop it locally you install dependencies with pnpm, then run the web app or the command line tool, or build everything with a single build command. The command line tool can read a file and display it as a looping terminal QR stream, read text piped in from another program, or serve the built web app locally. The README documents a fixed transport header and mentions RaptorQ as the default forward error correction codec, with an older JS based codec kept for compatibility but marked deprecated.
A tool that transfers files and text between two devices by displaying and scanning animated QR codes, with no network upload involved.
Mainly TypeScript. The stack also includes TypeScript, WebAssembly, Rust.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
double-check against the repo, no cap.