Skip to content

Releases: Daniele-Tomassoni/peerino

Peerino v1.1.0

Choose a tag to compare

@Daniele-Tomassoni Daniele-Tomassoni released this 25 Sep 09:17

What's changed

Link sharing

  • 70% shorter links: removed embedded TURN credentials and ICE parameters
    from P2P share links. Links are now ~190 characters instead of ~650.
  • No credentials in links: TURN credentials are no longer exposed in the
    share URL. The receiver fetches fresh credentials from the Worker when the
    transfer starts.

TURN diagnostic-only

  • No files pass through TURN relay. When a direct connection isn't
    possible, Peerino now shows a clear message asking to try a less
    restrictive network, and the transfer is rejected.
  • Better feedback: red LED with auto-show tooltip (10s) on the sender,
    red status message on the receiver.

Infrastructure

  • New peerino-turn-monitor Worker with Durable Object Alarm tracking
    monthly TURN egress.
  • Global shutdown flag in KV when usage approaches 100 GB.
  • Rate limit raised to 40 credentials/hour per IP.
  • TURN credential TTL set to 15 minutes.

Fixes

  • TDZ crashes in receiver on early log calls (LOG_LEVELS, MAX_LOG_ENTRIES).
  • TURN_MAX_FILE_SIZE=0 now treated as valid (was replaced by 10 MB fallback).
  • Inbox uploads blocked correctly after TURN rejection.
  • Footer now shows app version (v1.1.0).

Compatibility

  • Old links with ice= parameter still work (legacy parsing kept in receiver).
  • New links require the updated receiver (already live on peerino.com).

Full changelog: https://github.com/Daniele-Tomassoni/peerino/blob/main/CHANGELOG.md

Peerino v1.0.10

Choose a tag to compare

@Daniele-Tomassoni Daniele-Tomassoni released this 24 Sep 10:33

Peerino v1.0.10

Relay safety release. The TURN relay file limit is reduced from 10 MB to 5 MB, and the relay infrastructure now has an IP-based rate limit and shorter credential lifetime.

Changed

  • TURN file-size limit reduced from 10 MB to 5 MB. The relay is only used as a fallback when a direct connection isn't possible, and represents a small fraction of transfers. The lower limit protects the shared Cloudflare free-tier budget.
  • Relay size-limit message rewritten in English with clearer guidance: retry first (direct connection is probabilistic), then local network, then different network, then smaller file.

Documentation

  • README and landing page updated to reflect the new 5 MB relay limit.

Infrastructure (not tracked in this repo)

  • The Cloudflare Worker peerino-turn-proxy now includes:
    • IP-based rate limit (4 credentials per hour per IP) via Durable Object with SQLite-backed storage
    • Credential TTL reduced from 24h to 1h
    • customIdentifier field passed to Cloudflare TURN API for future usage analytics (currently hardcoded to "unknown"; will be populated in a follow-up release)

Download

File Description
peerino-installer.exe Recommended. Guided setup, per-user install.
peerino-installer.msi MSI package, for enterprise deployment.
peerino-portable.exe Single executable, no installation.

Notes

  • Windows SmartScreen may warn on first run (binaries unsigned). Click More info → Run anyway.

Peerino v1.0.9

Choose a tag to compare

@Daniele-Tomassoni Daniele-Tomassoni released this 24 Sep 09:34

Peerino v1.0.9

Small cleanup release. No new features, no behavior changes for normal use.

Fixed

  • The frontend fallback for the TURN file-size limit was still set to
    100 MB in three places. If the backend call to get_turn_limits
    failed, the UI would use 100 MB while the backend enforced 10 MB.
    Now both use 10 MB consistently.

Changed

  • Share links no longer include the lan=http://<ip>:3000 parameter.
    The parameter was blocked by mixed-content protection whenever the
    receiver was loaded over HTTPS from peerino.com, so it never fired
    in the normal flow. Links are ~35-45 characters shorter. Opening the
    receiver directly from the LAN HTTP server continues to work.

Documentation

  • Added notes/future-offline-lan-sharing.md describing a planned
    feature: file sharing on local networks without internet access.
    Not implemented. Covers architecture constraints, design, security
    and scope.

Download

File Description
peerino-installer.exe Recommended. Guided setup, per-user install.
peerino-installer.msi MSI package, for enterprise deployment.
peerino-portable.exe Single executable, no installation.

Notes

  • Windows SmartScreen may warn on first run (binaries unsigned).
    Click More info → Run anyway.

Peerino v1.0.8

Choose a tag to compare

@Daniele-Tomassoni Daniele-Tomassoni released this 24 Sep 08:17

Peerino v1.0.8

Robustness and documentation release. No new features, no behavior changes
for normal use.

Fixed

  • The HTTP server now reads HTTP_PORT from the environment instead of
    always using port 3000, waits for the Axum task to shut down before
    returning from stop_http_server, and resets server_running when
    the task exits with an error. (C-18)
  • File hashing during the startup scan now runs outside the SQLite lock.
    Previously, a large file could block list_files and other queries
    for the entire duration of the hash computation. (C-17)
  • The cancellation flag registered by stream_file is now removed on
    every exit path (success, error, cancellation). (C-11 follow-up)

Documentation

  • README: added a "How file size limits work" section explaining the
    10 MB TURN relay limit, why it exists, and how to bypass it by using
    a direct connection.
  • Landing page: added a short note about the relay limit.
  • notes/known-limitations.md: documented the LAN mixed-content issue
    and the shared cancellation flag limitation.

Download

File Description
peerino-installer.exe Recommended. Guided setup, per-user install.
peerino-installer.msi MSI package, for enterprise deployment.
peerino-portable.exe Single executable, no installation.

Notes

  • Windows SmartScreen may warn on first run (binaries unsigned).
    Click More info → Run anyway.

Peerino v1.0.7

Choose a tag to compare

@Daniele-Tomassoni Daniele-Tomassoni released this 24 Sep 07:31

Peerino v1.0.7

Robustness release. Fixes four residual issues from a post-release
audit — no new features, no behavior changes for normal use.

Download

File Description
peerino-installer.exe Recommended. Guided setup, per-user install.
peerino-installer.msi MSI package, for enterprise deployment.
peerino-portable.exe Single executable, no installation.

Peerino v1.0.6

Choose a tag to compare

@Daniele-Tomassoni Daniele-Tomassoni released this 24 Sep 07:22

[1.0.6] - 2026-09-23

Fixed

  • Abandoned P2P uploads are now cleaned up on connection close and
    after 5 minutes of inactivity. Previously, interrupted uploads left
    orphan temp files and file handles. (C-05)
  • File writes are now atomic (temp file + rename). Partial files are
    removed on I/O error, and concurrent writes with the same filename
    no longer overwrite each other. (C-06)
  • The file index now recalculates hashes when a file's size changes,
    removes records of files deleted from disk, and never caches stale
    entries. (C-07)
  • Startup now surfaces an explicit error when the data folders
    (shared-folder, temp, config) are not writable, instead of silently
    falling back to in-memory storage. (C-08)
  • Unicode filenames no longer panic the HTTP server when building the
    Content-Disposition header. RFC 5987 filename* is used for
    non-ASCII names. (C-13)
  • Expired inboxes are rejected immediately by get_inbox, instead of
    remaining valid until the next hourly cleanup. (C-14)
  • The LAN receiver no longer buffers the entire file in JavaScript
    memory. LAN downloads now use the browser's native streaming via
    redirect. (C-15)
  • PeerJS and js-sha256 are now self-hosted instead of loaded from
    unpkg, removing a runtime CDN dependency. (C-19)

Peerino v1.0.5

Choose a tag to compare

@Daniele-Tomassoni Daniele-Tomassoni released this 23 Sep 21:16

Peerino v1.0.5

Security release. Fixes 5 vulnerabilities found in a static audit.
If you are running v1.0.4 or earlier, upgrading is strongly recommended.

Download

File Description
peerino-installer.exe Recommended. Guided setup, per-user install.
peerino-installer.msi MSI package, for enterprise deployment.
peerino-portable.exe Single executable, no installation.

Notes

  • TURN relay limit reduced from 100 MB to 10 MB per file. If you need
    to send larger files, connect both devices to the same local network.
    Direct LAN transfers have no size limit.
  • Regional STUN servers removed. They provided no practical benefit
    because Cloudflare TURN is throttled/blocked in those regions anyway.
  • Windows SmartScreen may warn on first run (binaries unsigned).
    Click More info → Run anyway.

Peerino v1.0.4

Choose a tag to compare

@Daniele-Tomassoni Daniele-Tomassoni released this 23 Sep 08:51

Peerino v1.0.4

Bug fixes and share-link optimization. No API changes.

Fixed

  • Regional STUN servers (China/Russia) were silently dropped when the
    active TURN provider was Cloudflare. Users behind blocked Google/Cloudflare
    STUN had no reachable fallback. The default regional list (miwifi, bilibili,
    yandex) is now always included in the ice payload.
  • Inbox cancellation was not notified to the browser sender. When the
    app cancelled an incoming upload, the browser kept showing "Sending file..."
    with no indication the transfer had stopped. The app now sends
    transfer_cancelled to the browser, which resets the UI and stops the send
    loop.

Changed

  • Share links are shorter: turnMax is omitted when it equals the receiver's
    default (100 MB), and empty ice fields are no longer serialized.

Download

File Description
peerino-installer.exe Recommended. Guided setup, per-user install.
peerino-installer.msi MSI package, for enterprise deployment.
peerino-portable.exe Single executable, no installation.

Notes

  • Windows SmartScreen may warn on first run (binaries unsigned).
    Click More info → Run anyway.

Peerino v1.0.3

Choose a tag to compare

@Daniele-Tomassoni Daniele-Tomassoni released this 22 Sep 17:45

Peerino v1.0.3

Internal cleanup release. No user-facing behavior change, but it eliminates
a class of bugs caused by two diverging copies of the browser receiver.

Changed

  • The LAN HTTP server now serves the same peerino-website/receiver.html
    used by peerino.com. Previously, the LAN server served a separate
    src/ui/web-receiver.html that had drifted from the deployed version:
    it missed TURN support on LAN direct access, plus several other fixes
    (hash verification, cancellation handling, inactivity timeout, log
    masking).

Removed

  • src/ui/web-receiver.html (redundant; unified with the deployed receiver).

Download

File Description
peerino-installer.exe Recommended. Guided setup, per-user install.
peerino-installer.msi MSI package, for enterprise deployment.
peerino-portable.exe Single executable, no installation.

Notes

  • This release requires no action from existing users. Everything that
    worked in v1.0.2 keeps working, and LAN direct access now correctly
    negotiates TURN when needed.
  • Windows SmartScreen may warn on first run (binaries unsigned).
    Click More info → Run anyway.

Peerino v1.0.2

Choose a tag to compare

@Daniele-Tomassoni Daniele-Tomassoni released this 22 Sep 15:41

Peerino v1.0.2

Critical fix: v1.0.1 could corrupt files transferred over TURN relay
(same file size, different SHA-256 hash). This release serializes the
data channel callback to preserve chunk order under backpressure. If
your transfers work on LAN but the downloaded file fails integrity
verification, this fixes it.

Download

File Description
peerino-installer.exe Recommended. Guided setup, per-user install.
peerino-installer.msi MSI package, for enterprise deployment.
peerino-portable.exe Single executable, no installation.

All binaries for Windows x64.

What's fixed

  • Async channel callback reordering under backpressure caused file
    corruption on TURN relay downloads. The channel callback is now
    serialized through a Promise queue, preserving conn.send() order
    even when multiple callbacks suspend on bufferedamountlow.

Notes

  • v1.0.0 and v1.0.1 remain online for historical reference but are
    affected by this bug when using TURN relay. Use v1.0.2.
  • Windows SmartScreen may warn on first run (binaries unsigned).
    Click More info → Run anyway.