Files
RaptorQR/CONTRIBUTING.md

1.8 KiB

Contributing to RaptorQR

Thanks for your interest in RaptorQR.

This project focuses on high-speed offline file/text transfer through animated QR codes, with performance-critical paths backed by Rust/WASM. Contributions that improve reliability, throughput, browser compatibility, protocol clarity, tests, or documentation are welcome.

Guidelines

  • Keep changes focused and easy to review.
  • Prefer existing architecture and package boundaries.
  • Do not add new dependencies unless they are clearly justified.
  • Keep protocol changes backward-compatible when possible.
  • Do not silently fallback from wasm-raptorq to js-rlnc; codec choice should remain explicit.
  • Add or update tests for behavior changes.
  • Run pnpm build and pnpm test before submitting.

WASM Artifacts

The repository includes precompiled WASM artifacts for convenience.

If you update Rust/WASM wrappers, also update the related build script and manifest. Generated artifacts should stay under:

packages/raptorqr-fast-qr-wasm/src/wasm
packages/raptorqr-fast-qr-wasm/src/wasm
packages/raptorqr-raptorq-wasm/src/wasm

Pull Requests

A good PR should include:

  • A short description of the change
  • Why the change is needed
  • Any compatibility or performance impact
  • Test results, including device/browser notes when relevant

Performance claims should include enough context to reproduce them: QR version, ECC level, parallel QR count, FPS, browser, device, and file size.

Bug Reports

Please include:

  • Browser and device
  • RaptorQR version or commit
  • Transfer mode: file/text, live/GIF, camera/GIF decode
  • QR version, ECC, parallel QR count, FEC codec, and decoder settings
  • Screenshots or logs if available

Security

Please do not report security vulnerabilities in public issues. See SECURITY.md for private reporting guidance.