# divan/txqr

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/divan-txqr).**

3,060 stars · 180 forks · Go · mit

## Links

- GitHub: https://github.com/divan/txqr
- awesome-repositories: https://awesome-repositories.com/repository/divan-txqr.md

## Description

txqr is a protocol and encoder for streaming large data payloads over QR codes. It enables the offline transfer of data between devices by encoding information into a sequence of scannable QR images.

The system uses fountain codes and erasure coding to ensure data integrity. This allows a receiver to reconstruct the full original message from any subset of frames, making the transmission resilient to missed or corrupted frames during the scanning of animated QR sequences.

The project covers high-volume data encoding and frame-independent reconstruction. It supports looping sequence streaming and symbol-based packetization to facilitate the transmission of datasets that exceed the capacity of a single QR code.

## Tags

### Networking & Communication

- [Fountain Code Encoders](https://awesome-repositories.com/f/networking-communication/binary-data-encoding/qr-code-binary-encoders/fountain-code-encoders.md) — Transforms data into a fountain-coded symbol stream for resilient transmission over QR codes.
- [Animated QR Data Streamers](https://awesome-repositories.com/f/networking-communication/animated-qr-data-streamers.md) — Streams large payloads through animated QR codes that remain recoverable despite missed frames.
- [Animated QR Data Transfers](https://awesome-repositories.com/f/networking-communication/animated-qr-data-transfers.md) — Encodes data into a sequence of looping QR codes to reconstruct payloads regardless of frame order. ([source](https://github.com/divan/txqr/tree/master/docs/))
- [QR Code Binary Encoders](https://awesome-repositories.com/f/networking-communication/binary-data-encoding/qr-code-binary-encoders.md) — Uses QR codes as the physical medium for transporting encoded binary data streams.
- [Fountain Code Encoders](https://awesome-repositories.com/f/networking-communication/binary-data-encoding/qr-code-encoders/fountain-code-encoders.md) — Encodes data into a sequence of QR codes using fountain codes to ensure reliable transmission.
- [Multi-Frame Encoders](https://awesome-repositories.com/f/networking-communication/binary-data-encoding/qr-code-encoders/multi-frame-encoders.md) — Encodes data exceeding the capacity of a single QR code into a stream of recoverable frames.
- [Erasure Coding Libraries](https://awesome-repositories.com/f/networking-communication/erasure-coding-libraries.md) — Employs erasure coding to ensure reliable transmission and reconstruction of data over unreliable visual channels.
- [Out-of-Order Frame Reconstruction](https://awesome-repositories.com/f/networking-communication/out-of-order-frame-reconstruction.md) — Decodes payloads using a fountain-code matrix that does not require frames to be scanned in a specific order.
- [Visual Offline Data Transfers](https://awesome-repositories.com/f/networking-communication/visual-offline-data-transfers.md) — Moves data between devices without a network connection using a series of scannable QR images.
- [Looping Sequence Streams](https://awesome-repositories.com/f/networking-communication/looping-sequence-streams.md) — Cycles through encoded QR frames repeatedly to ensure the reader captures enough unique symbols.
- [Reliable QR Streams](https://awesome-repositories.com/f/networking-communication/reliable-qr-streams.md) — Utilizes fountain codes to guarantee data recovery from animated QR streams despite missed frames. ([source](https://cdn.jsdelivr.net/gh/divan/txqr@master/README.md))
- [Symbol-Based Packetization](https://awesome-repositories.com/f/networking-communication/symbol-based-packetization.md) — Breaks payloads into small discrete chunks mapped to individual QR codes for sequential or random transmission.

### Scientific & Mathematical Computing

- [Linear Algebraic Recoveries](https://awesome-repositories.com/f/scientific-mathematical-computing/polynomial-data-recovery/linear-algebraic-recoveries.md) — Implements a system of linear equations to recover missing data blocks from encoded QR sequences.

### Security & Cryptography

- [Error Correction Codes](https://awesome-repositories.com/f/security-cryptography/error-correction-codes.md) — Uses fountain codes as an error correction mechanism to recover missing or corrupted QR frames. ([source](https://divan.github.io/posts/animatedqr/))
- [Erasure-Resilient Scanners](https://awesome-repositories.com/f/security-cryptography/error-correction-codes/qr-code-error-correction-optimizers/erasure-resilient-scanners.md) — Recovers missing or corrupted QR frames using fountain codes during the scanning process.
