qrs: Transfer Data Through Sequences of QR Codes

qrs: Transfer Data Through Sequences of QR Codes

Summary

Qrs encodes data as a stream of QR codes so a receiver can reconstruct it even when some frames are missed. It is suited to file transfers across devices when a direct network connection is inconvenient or unavailable.

At a glance

Language
TypeScript
License
MIT
Stars
1.7k
Forks
108
Added to OSRepos
April 3, 2026
Last analyzed
October 3, 2026
View on GitHub

Topics

Click on any tag to explore related repositories

Use at your own risk

OSRepos shares public repositories for knowledge and discovery only. Any installation, execution, configuration, or use of code from these repositories is the user's own responsibility. Always review the repository, source code, dependencies, licenses, and security implications before running or installing anything. OSRepos is not responsible for issues, damages, or losses resulting from third-party repositories.

Overview

Qrs transfers data by encoding it into a sequence of QR codes. Its fountain-code approach lets a receiver recover the original data after collecting enough encoded frames, rather than requiring every frame to arrive.

The project includes a web app and related packages for generating QR streams, decoding Luby Transform data, and using file transmission from a CLI. It is useful when a visual, camera-readable transfer is preferable to connecting devices over a network.

Key Features

  • Stream file data as a sequence of QR codes.
  • Use Luby Transform fountain coding to tolerate missed frames.
  • Try the transfer flow in the live demo.
  • Use the QiFi CLI package for QR-code file transmission.
  • Use the luby-transform package for encoding and decoding.
  • Generate QR-code streams with the @qifi/generate package.
  • Export a QR sequence as an animated GIF, with a recovery check before download.

Use Cases

  • Transfer a file between devices using a camera when a network transfer is inconvenient.
  • Share data in settings where some QR frames may be missed, such as a changing display or imperfect camera capture.
  • Generate a QR animation for offline presentation or playback, then have a receiver scan enough frames to recover the data.
  • Integrate QR-stream file transfer into command-line workflows using the QiFi CLI package.

Project Facts

  • Language: TypeScript
  • License: MIT
  • Stars: 1.7k
  • Forks: 108
  • Topics: qrcode, transfer-files
  • Archived: No

Getting Started

Try the live demo. To build and run the project locally, install dependencies with pnpm install, then follow the README for build and serving instructions.

Considerations

  • This is a visual transfer method, so the receiver needs a camera or other way to capture the QR sequence.
  • Recovery requires collecting enough encoded frames. Missed frames are tolerated, but camera scanning can still fail to capture enough usable data.
  • The README notes that longer GIF exports take more time and memory, and recommends increasing the frame count if the export cannot be decoded.
  • Local development requires Node.js and pnpm. Static hosting may require correct JavaScript MIME types, as described in the README.

Found this useful?

Share it with someone who would like qrs.

Source repository

Open the original repository on GitHub.

22 counted GitHub visits

View on GitHub

Related repositories

Similar repositories that may be relevant next.

OS
OSRepos

Analysis and discovery of open source repositories. Find interesting projects and follow their updates.

Monitor your website with YourWebsiteScore

OSRepos shares public repositories for knowledge and discovery only. Any installation, execution, configuration, or use of third-party repository code is at your own risk. Always review source code, dependencies, licenses, and security implications before running anything.

© 2025 OSRepos. Built with Nuxt 3 and lots of ❤️