https://codeberg.org/blast/blastqr

Hello! I’ve been working on blastQR for a couple of years now and I thought this community might find it useful. Feel free to try it and ask me anything!

blastQR is a fully open-source file transfer app and protocol that works completely offline. You can even use it in airplane mode. Data is transferred through sequences of QR codes displayed on a sender device and scanned by a receiver device’s camera. It uses RaptorQ codes so the receiver can recover the file from any sufficiently large subset of frames.

Note that although I have made use of AI as a coding assistant I do not consider this to be a vibe-coded app and I do plan to continue improving it and supporting it in the future.

See video of blastQR in action: https://github.com/user-attachments/assets/038a2567-70c8-47c8-b165-dea858d1aef3

Here are some of the key features:

  • Works fully offline: No internet, Wi-Fi, Bluetooth or servers. Your data stays offline.
  • One-to-many distribution: Share the same file with multiple devices simultaneously using a single blastQR broadcast.
  • Cross-platform: Android, iOS, macOS, Linux and Windows, plus a command-line tool that can send from a terminal, even over SSH.
  • Password encryption: You can optionally encrypt files with an auto-generated password or a custom one.
  • Media compression: The app supports lossy image compression and video transcoding for quicker transfers.
  • Multiple codes on screen: Shows multiple QR codes at once for higher speed. With 8 codes at 60 fps, transfers peak at around 1.4 MB/s.
  • Send multiple files in one go: They’re zipped into one transfer and unpacked into separate files on the receiver.
  • Sound feedback: The receiver plays a short tone when it has the whole file, and the sender stops automatically when it hears it.
  • Start scanning at any point: No need to catch every code, just keep the camera on the screen until it’s done. Blurry or missed codes don’t matter.
  • Regular QR scanner: You can also scan normal QR codes and save them.
  • Open protocol that other apps can implement
  • Built-in file manager

I’m trying to build a small community around the project so it can be improved and maintained and so it can reach more people in the future.

Downloads for all platforms can be found here: https://codeberg.org/blast/blastqr/releases/latest

  • blast@lemmy.dbzer0.comOP
    link
    fedilink
    arrow-up
    10
    ·
    14 hours ago

    You can tweak the FPS from the send page UI. it’s set to 25 fps by default for broader compatibility (most devices capture at 30fps) but if you have a more powerful device they can capture at 60 or 120fps and you can adjust the sender accordingly. Each frame carries around 3kB of data per frame (with the default settings) so at 25fps that’s 75kB/s. You can multiply the speed by showing more than one code. So two codes would give you 150kB/s

    The completion tone is optional. It basically just tells the sender that it can stop and t’s more for convenience. I want to expand it in the future so the receiver tells the sender what FPS to send at through sound tones.

    Regarding large files it can take a long time yes! The app includes lossy compression turned on by default when you send pictures or videos (similar to what all chat apps do) so it can send those quite fast. With default settings and showing 2 codes it can send 5 pictures in around 10 seconds for example or a 2MB video in the same time.