dashbeam

tonyantony300AGPL-3.0活跃维护

基于 iroh 的点对点文件传输工具,支持断点续传和自托管,覆盖 Android、Linux、macOS、Windows 及终端与网页端,方便在附近或远程设备间私密传文件。

Share files nearby and beyond.

v0.7.2发布于 2026-10-14 16:11 UTC10,284star +32 / 7 天625fork同步于 2026-11-10 23:30 UTC

怎么上手

由 README 提炼,执行前请确认
从 GitHub Releases 下载对应平台安装包(如 Windows 的 DashBeam_0.7.2_x64-setup.exe、macOS 的 DashBeam_0.7.2_universal.dmg、Linux 的 DashBeam_0.7.2_amd64.deb)安装运行
硬件要求按 README 说明

README 未说明硬件要求;提供 Windows x64、macOS Universal、Linux amd64、Android 安装包,CLI 约 4-5 MB,桌面端约 10-15 MB。

支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

开源 P2P 文件传输工具,设备间直连加密传输,不经过云服务器

基于 iroh 的点对点文件传输工具,支持断点续传和自托管,覆盖 Android、Linux、macOS、Windows 及终端与网页端,方便在附近或远程设备间私密传文件。

核心能力

  • 基于 Iroh 的 QUIC 直连,NAT 打洞失败时用中继
  • 每个数据块用 BLAKE3 校验,断点续传只补缺失块
  • mDNS 局域网自动发现,支持 Pair & Send 一步配对
  • 支持配对设备、分享 ticket/链接/二维码,接收端免安装
  • 传输中切换 Wi-Fi 或蜂窝网络不断连

容易踩的坑

mDNS 在访客 Wi-Fi 和 VPN 上常被屏蔽,Nearby 列表可能为空;Web 版吞吐受限,大文件建议用原生应用;项目自述仍处于 WIP 阶段。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.7.2
  1. v0.7.2DashBeam 0.7.2最新正式版2026-10-14 · 2026-10-14 16:11 UTC

    Security

    Please update. This release fixes a security issue in iroh-blobs (updated to 0.103.1). A bug in the provider's event mask meant push requests were accepted even though they were meant to be disabled by default. Any peer able to connect to a provider could write data into its store. The data is content-addressed and verified, so existing blobs could not be modified, but a peer could fill up disk space.

    Versions 0.94.0 through 0.103.0 of iroh-blobs are affected. Details: https://www.iroh.computer/blog/iroh-blobs-push-fix

    Highlights

    • Security: Update iroh-blobs to 0.103.1 (fixes the push request issue above)
    • Dependencies: Update iroh to 1.3.0 and rustls to 0.23.45
    • I18n: Use the OS language by default

    Bug fixes

    • Tray: Show the tray icon on Linux by attaching its menu (#329)
    • I18n: Follow the OS language when it changes and match full language codes
    • I18n: Keep locale detection working when storage is unavailable
    • Docs: Update the Vercel program logo to support dark and light themes

    Improvements

    • Docs: Simplify the HTML structure of sponsor logos in multiple language READMEs

    Dependency updates

    • Update iroh-blobs to 0.103.1 (#332)
    • Update iroh to 1.3.0 and rustls to 0.23.45 (#333)

    New contributors

    Welcome and thank you to our new contributors:

    • @hiro-nikaitou made their first contribution in #329
    • @snowyukitty made their first contribution in #311
    • Thanking @rklaehn for letting me know about 0.103.1

    Full changelog: https://github.com/tonyantony300/dashbeam/compare/v0.7.1...v0.7.2


    See the assets below to download and install this version.

  2. v0.7.1DashBeam 0.7.1 - Trusted Devices2026-09-01 · 2026-09-01 17:25 UTC
    查看更新说明

    Dashbeam now works with phones running Android 12 and older, you can mark a device as trusted so its files arrive without a prompt, and the mobile UI has had a round of fixes.

    Highlights

    Trusted devices

    Mark a device you own as trusted and its transfers land automatically, with no accept prompt and no waiting by the screen. Incoming files are sorted into a folder named after the device that sent them, so you can tell at a glance where something came from.

    • Auto-accept is now a clearly labelled switch in pairing settings
    • Unattended receives raise a notification so you know something arrived
    • Trusting a device, or removing one, asks for confirmation first
    • Trusted invites are queued rather than accepted inline, and the whole queue drains at once

    Support for Android 12 and older

    Sending now works on Android 12 and below. If Dashbeam previously failed to send from an older phone, it should just work.

    Android UI and UX

    • Settings and History pages are padded correctly for the system bars
    • The send-to-device sheet fits the phone screen instead of overflowing
    • Settings sidebar rows are tappable on mobile
    • Larger sharing pulse animation
    • The main activity is no longer declared non-resizeable, so split screen and foldables behave
    • Update checks now run on Android release builds, and diagnostics export works again

    Builds also changed on the Android side: there's a Play Store AAB build with its own CI workflow, and a separate workflow for developer-verification APKs.

    Other changes

    History

    • The list refreshes when a transfer lands while you have it open
    • Open a transfer's files straight from its history row
    • Disk-write timing dropped; the delete action is now inline

    Settings

    • Relay status in the footer is behind a General toggle

    Updater

    • Download progress is shown, and you're asked to confirm a restart if one lands mid-transfer

    Core

    • Desktop temp stores now live in the standard system temp directory

    Bug fixes

    • History: Stop offering to free partial data that's already gone; keep the row delete button on the last detail line; stop Android rows pointing at app-private staging
    • Pairing: A nearby pair request no longer flashes the "no code" error
    • Receiver: A finished transfer no longer blocks the next one
    • Tray: Native left/right context-menu interactions on Windows, with macOS left-click behaviour preserved
    • Theme: Default to auto instead of light on the web build
    • I18n: zh-CN (Simplified Chinese) translation file reformatted to match the order of en
    • Deps: Bump h2 in the wasm-bridge lock for RUSTSEC-2026-0258
    • CI: Parse the apksigner certificate digest robustly
    • Core: Fix tests for Android 12 and older compatibility

    Pull requests in this release

    New contributors

    Thanks to @theezeb, @Mikachu2333, @Andepthy, @hyrinx and @JrInventor05, who all made their first contribution in this release.

    Full Changelog: https://github.com/tonyantony300/dashbeam/compare/v0.7.0...v0.7.

  3. v0.7.0DashBeam 0.7.0 2026-08-21 · 2026-08-21 12:52 UTC
    查看更新说明

    Find devices on your own Wi-Fi and send to them without typing a code, keep a record of what you've transferred, and stay reachable while the app is in the background. This release folds in everything from the 0.6.9 pre-release.

    Highlights

    Nearby - local discovery (#190, #287) DashBeam finds other devices on your Wi-Fi/LAN over mDNS. Confirm with a short fingerprint, then send files or pair without typing a code. Once paired, you stay connected even after you leave that network. Control who can see you under Settings → Network (Everyone / Paired only / Off).

    Transfer history (#296) A record of what you've sent and received.

    QR codes (#252) Show a QR when sending, and open a QR for receive links, so the other device can scan instead of copying text.

    Notifications Desktop and Android notify you for pair requests and file invites. Banners stay quiet while the app is in the foreground. Turn them off in Settings.

    Tray and background presence (#286) Close to the tray, start at login, and see which paired devices are online from the menu bar (macOS) or system tray (Windows). Android runs a background presence service so it stays reachable with the app closed. Flatpak uses the desktop background portal for autostart.

    Pairing polish Verification codes appear in pairing dialogs, unpairing recovers if a Forget notification was missed, you're offered start-at-login after pairing your first device, and removing a device now shows progress instead of appearing to hang.

    Fixes

    • Long-standing PC↔Android send failures and mid-transfer "peer went offline" drops (#240, #274)
    • Paired control connections timing out after ~30s, and concurrent sessions marking a live peer Offline (#279)
    • Nearby: accepting an invite no longer unpairs both devices; declined requests, device names, and mDNS rediscovery are handled correctly
    • Android: exports land in Download/DashBeam and open from the app

    New contributors

    @SuperCoolPencil made their first contribution in #281 — thanks!

    Full Changelog: https://github.com/tonyantony300/dashbeam/compare/v0.6.2...v0.7.0

  4. v0.6.90.6.9 - Local discovery and notificationspre-release2026-08-02 · 2026-08-02 04:56 UTC
    查看更新说明

    Connect on the same LAN with Nearby (mDNS local discovery), pair once, and keep that connection even after you change networks. This release also adds invite notifications, background tray presence, and QR codes.

    Highlights

    • Local discovery (Nearby): DashBeam finds other devices on your Wi-Fi/LAN via mDNS. Confirm with a short fingerprint, then send files or pair without typing a code. Once paired, you stay connected even when you leave that network. Control who can see you under Settings → Network (Everyone / Paired only / Off).
    • Notifications: Desktop and Android notify you for pair requests and file invites. Banners stay quiet while the app is in the foreground. Turn them off in Settings.
    • Tray and background: Close to the tray, start at login, and see which paired devices are online from the menu bar (macOS) or system tray (Windows). Flatpak uses the desktop background portal for autostart.
    • QR codes: Show a QR when sending, and open a QR for receive links, so the other device can scan instead of copying text.
    • Pairing polish: Verification codes appear in pairing dialogs, unpairing recovers if a Forget notification was missed, and you’re offered start-at-login after pairing your first device.

    New contributors

    Thanks @SuperCoolPencil!

    Full Changelog: https://github.com/tonyantony300/dashbeam/compare/v0.6.2...v0.6.9


    See the assets below to download and install this version.

  5. v0.6.2DashBeam 0.6.22026-07-30 · 2026-07-30 17:00 UTC
    查看更新说明

    Release highlights

    • ⁠Android - Supports native share sheet for easier file sharing - single / multiple files
    • Logs - Added debug mode
    • Flatpak - Added Flathub packaging for DashBeam (#266)
    • Share link - Share ticket from dashbeam apps and receive on single click through web app or android app
    • Personalisation - 12 more themes
    • Discovery - Implement custom discovery server support and update related configurations; Enhance custom discovery server with optional DNS origin support

    What's changed

    New contributors

    Thanking @ananthan199601, @DoggySmooth, @Today20092, @noordeen123 for their contributions.

    Full Changelog: https://github.com/tonyantony300/dashbeam/compare/v0.6.1...v0.6.2


    See the assets below to download and install this version.

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Language: English | 中文 | Русский | Português | Español | Deutsch | Français | 日本語 | 한국어 | Polski | العربية

    File transfer doesn't need to be complicated

    DashBeam Header

    DashBeam working demo

    Discord Version Website Platforms Sponsor

    A free and open-source file transfer tool that harnesses the power of cutting-edge peer-to-peer networking, letting you transfer files directly without storing them on cloud servers.

    Why rely on WeTransfer, Dropbox, or Google Drive when you can reliably and easily transfer files directly, end-to-end encrypted and without revealing any personal information?

      

    Features

    • Cross-platform - Desktop, Android, CLI, and browser - no install on the web
    • Any file, any size - Files or folders, BLAKE3-verified
    • Multi-gigabit speeds - Saturates fast connections
    • Nearby - LAN auto-discovery; Pair & Send
    • Paired devices - Pair once with a code (remote) or Nearby; send without tickets
    • Trusted devices - Opt a paired device into auto-accept; its files land without a prompt
    • Resumable & multi-peer - Resume interrupted transfers; share to many at once
    • Dial by key - Connect by device identity, not IP address
    • Roaming - Switch Wi-Fi, cellular, or networks mid-transfer without dropping
    • Code, Link or QR - Receiver needs no install (browser or app)
    • Preview & history - See before download; local transfer log
    • Advanced debug mode - Opt-in diagnostics for under the hood transparency
    • Private - No accounts, tracking, or ads; direct device-to-device
    • Encrypted - TLS 1.3 end-to-end; authenticated tickets
    • Self-host relays - Unthrottled remote transfers via your own relay (Settings → Infra)
    • Always reachable - Background tray/service, notifications, start at login
    • Lightweight & free - Small installs; open source, no limits

    Real-world stats

    MetricReported
    Largest transfer452 GB
    Fastest large transfer54 GB @ 123 MB/s (~1 Gbps)
    High-speed bulk transfer328 GB @ 93 MB/s
    Peak speed measured125 MB/s (1 Gbps)

    Transfer throughput depends on your device, network, and connection path.

    Installation

    The easiest way to get started is by downloading one of the following versions for your respective operating system:

    More options at GitHub Releases or in Downloads page.

    Running into problems? See Troubleshooting for common issues and how to collect logs.

    Supported Languages

    🇺🇸 🇷🇺 🇫🇷 🇨🇳 🇩🇪 🇯🇵 🇮🇳 🇹🇭 🇮🇹 🇨🇿 🇪🇸 🇧🇷 🇸🇦 🇮🇷 🇰🇷 🇵🇱 🇺🇦 🇹🇷 🇳🇴 🇧🇩 🇭🇺 🇷🇸 🇹🇼 🇰🇭 🇺🇿

    Ways to send

    Nearby devices (Recommended)

    Same-network apps appear under Nearby in Settings → Devices and in the Send to a device list while you're sharing. Pick a nearby device and Pair & Send to pair and start the transfer in one step - you can also pair from Settings without sharing. First contact shows a verification code on both screens. Set who can find you in Settings → Network → Your discoverability.

    Uses mDNS - often blocked on guest Wi-Fi and VPNs. See Troubleshooting if the list stays empty.

    Paired devices

    Pair in Settings → Devices with a pairing code (works remotely, over the internet) or via a Nearby request on the same network. After pairing, Send appears next to that device while sharing - no ticket to copy. The receiver gets an in-app prompt. Desktop can keep running in the background and show online paired devices in the tray (Settings → General → Startup & background). Manual tickets and the sendme CLI still work.

    Share ticket, link or QR code (One time transfer)

    While sharing: QR for a camera scan, Share for the system sheet, Copy for the raw ticket. Links use https://app.dashbeam.net/receive?ticket=… - on Android they open the app; elsewhere the web app, so nothing to install (large files are better in the native app). Paste a ticket, link, or full share message into Receive.

    Comparison

    DashBeamBlipLocalSendMagic WormholePairDrop
    NetworkingQUIC via IrohUnknownHTTPS/REST over TCPencrypted TCPWebRTC/DTLS (SCTP)
    Works over the internet✅✅LAN only✅✅
    Saturates gigabit connections✅✅LAN only✅❌ (SCTP/browser ceiling)
    Discover devices on LAN✅❌✅❌❌
    Persistent paired devices✅✅ (account)❌❌✅
    Send folders✅✅✅✅✅ (CLI only, not in browser)
    Resumable transfers✅✅❌❌❌
    Roaming mid-transfer✅❌❌❌❌
    Send to multiple receivers✅ (broadcast)❌✅✅❌
    Unlimited file size✅✅✅✅Limited by browser memory
    Open source✅❌✅✅✅
    No account required✅❌✅✅✅
    End-to-end encryption✅✅✅✅✅
    PlatformsCLI + desktop + mobile + webDesktop + mobile (no web/CLI)Desktop + mobile (no web/CLI)CLI onlyWeb/PWA + Android app + CLI
    The catchWIPClosed source; data handling cannot be auditedSame-network only, no resumeCLI-only; GUI front-ends are separate, community-maintainedWebRTC/SCTP throughput ceiling; browser memory limits

    Know more →

    Under the hood

    DashBeam is built on Iroh, a modern peer-to-peer networking stack that simplifies direct device-to-device communication. In practice, that means devices talk over encrypted QUIC, files move with content-addressed blobs, and relays help when a direct path isn’t available.

    The long version: Under the hood walks the same architecture as a narrative - fingerprints instead of filenames, names instead of addresses, hole punching, roaming, and what each intermediary can and cannot see.

    The building blocks

    PieceWhat it does here
    Blobs (iroh-blobs)Store and stream file data; every chunk is verified with BLAKE3
    TicketsOne string that tells a peer who to dial and what to fetch
    EndpointsEach device’s Iroh identity (Ed25519 key → endpoint id)
    QUIC + TLS 1.3Encrypted transport; multiplexing without head-of-line blocking
    Relays + hole punchingBootstrap connections across NATs; the relay carries data while a direct path is negotiated
    Control protocol (pairing)Long-lived channel to remember devices and deliver share invites
    Local discovery (mDNS)Optional LAN advertising so Nearby devices can find each other without a ticket
    Receive linksA ticket wrapped in an ordinary https URL - an App Link on Android, the web app everywhere else

    Blobs

    Files aren’t uploaded to a server. They’re published as blobs: opaque byte sequences addressed by a BLAKE3 hash.

    • A link is that 32-byte hash: if the hash matches, the content matches.
    • Folders and large files use a HashSeq (a blob that points at other blobs).
    • The sender is the provider; the receiver is the requester. Either side can do both.

    Because that hash is a BLAKE3 tree rather than one digest over the whole file, every chunk verifies on its own against the root. That is what makes resume cheap: a receiver coming back after a dropped connection knows exactly which chunks it already holds and has verified, so it asks only for the gap. Nothing already received is re-sent, and nothing arriving is taken on trust.

    Tickets

    A share ticket is a single token that packs:

    1. The sender’s endpoint id (so you know you’re talking to the right device)
    2. Enough address / relay info to dial them
    3. The blob hash to download

    You only connect to people you share a ticket with: no broadcasting your IP to strangers. That’s the default “cozy network” model Iroh encourages, vs. flooding discovery to the whole swarm.

    Tickets that carry only an endpoint id lean on public-key discovery (Pkarr) to find current addresses. Those records are signed by the endpoint key itself, so a tampered one fails verification rather than misdirecting you - the lookup service is trusted for availability, not integrity.

    Connecting across networks

    When two devices need to meet:

    1. Each registers with a public (or self-hosted) relay so peers can find a path through firewalls and NATs.
    2. Iroh tries QUIC hole punching to upgrade to a direct peer-to-peer link.
    3. If a direct path works, traffic moves over to it. If not, the relay stays in the path as a fallback UDP hop.

    Those steps overlap rather than queue. The relay is already carrying your data while hole punching negotiates, so nothing waits on the direct path to succeed - the transfer just gets faster if and when it does. Roughly one transfer in ten never gets a direct path at all (symmetric NAT, locked-down corporate networks) and rides the relay start to finish.

    Either way, the payload is end-to-end encrypted. Relays see ciphertext, not your files. More on Iroh relays →

    Roaming across networks

    A connection is bound to the peer’s key, not to its IP address, so changing networks does not end it. Switch from Wi-Fi to cellular mid-transfer and iroh notices the address change, learns the new candidates, and republishes them to the peer. The relay carries the data throughout, and hole punching simply runs again on the new path.

    Addresses are disposable hints, not identity. That is the practical payoff of naming devices by key instead of by location.

    QUIC & encryption

    QUIC (UDP-based, same foundation as HTTP/3) brings TLS 1.3 into the transport. For DashBeam that buys encryption and authentication, multiple streams with shared congestion control, and fast reconnects when you’ve talked to a peer before.

    Paired devices

    Pairing doesn’t replace tickets; it delivers them for you.

    1. Devices exchange a short pairing code (the host’s endpoint id) over a dedicated control ALPN.
    2. Each side proves identity by signing connection-bound keying material with its device secret, then remembers the peer locally.
    3. A persistent control connection keeps presence (online/offline).
    4. When you share, DashBeam still creates a normal one-time blob ticket; choosing a paired device ships that ticket as an in-app invite instead of making you copy-paste it.

    Manual tickets and the sendme CLI keep working exactly as before.

    Nearby (local discovery)

    On the same local network, DashBeam can advertise and browse peers with mDNS (desktop and Android; not the web app).

    1. When discoverability is Everyone, the device publishes enough metadata for others to show its name in Nearby.
    2. Paired only still announces presence without exposing the display name to strangers on the LAN.
    3. Off stops advertising; you can still browse and send to others who remain discoverable.
    4. First-contact file invites show a short verification code derived from both devices' public keys so each side can confirm they're talking to the intended peer before accepting.
    5. Accepting a Nearby pair request or file invite creates the same local paired-device records as code-based pairing.

    Self-hosting relays and discovery

    For how to run your own iroh relay and discovery server, configure DashBeam to use them, and how mixed public/self-hosted setups behave, see infra/README.md (relay: infra/relay/README.md, discovery: infra/dns/README.md).

    For the illustrated version of everything above - including a full account of what a relay operator, your ISP, and the lookup service each learn from a transfer - read Under the hood.

    Development

    See CONTRIBUTING.md for prerequisites, local setup, build instructions, and testing.

    Join our Discord to contribute

    The best way to contribute is to join our Discord and say hi. Introduce yourself and share what skills or interests you have - whether that’s coding, testing, design, or something else. You can also raise issues, suggest fixes, or pitch ideas. Maintainers are there to guide you every step of the way.

    It’s the best place to get context, align on direction, and collaborate with the community.

    License

    AGPL-3.0

    Privacy Policy

    See PRIVACY.md for information about how DashBeam handles your data and privacy.

    Sponsor Buy Me Coffee

    Contributors

    Contact

    Reach me here for suggestions, feedback or media related communication.

    Thank you for checking out this project! If you find it useful, consider giving it a star and helping spread the word.