Skip to content

PranavAgarkar07/BeamSync

BeamSync Logo

BeamSync

Secure. Fast. Local.
A high-performance, offline-first peer-to-peer file transfer system.

Go Svelte Wails Vite
License: MIT AUR


Table of Contents

Overview

BeamSync is a cross-platform, desktop file transfer application engineered for speed and reliability. Built with Go (Wails v2) and Svelte, it establishes direct, high-bandwidth connections over your local area network β€” no internet required, no cloud involved, no accounts needed. Files go straight from one device to another.

Features

  • ⚑ High-Speed Local Transfer β€” Streams files directly over HTTP on your LAN for maximum throughput.
  • πŸ”’ Fully Offline β€” Works without internet access. Data never leaves your local network.
  • πŸ“± Cross-Device via QR Code β€” Connect any mobile device instantly by scanning a QR code β€” no app install required on the phone.
  • πŸ“‚ Drag & Drop β€” Drop files onto the window to begin transfer immediately.
  • 🧠 Smart Networking β€”
    • Auto-detects the optimal local IP address.
    • Finds open ports automatically to avoid conflicts.
    • Configures firewall rules on Linux when needed.
  • πŸ”Š Auditory Feedback β€” Integrated audio engine provides real-time interaction sounds.
  • β™Ώ Accessible β€” Respects prefers-reduced-motion for all animations.

Screenshots

BeamSync β€” Main Interface

BeamSync β€” File Transfer

BeamSync β€” Mobile Interface

Architecture

The project is structured as a Go workspace with two modules:

BeamSync/
β”œβ”€β”€ beamsync/          # Core library (Go module)
β”‚   β”œβ”€β”€ server.go      # StartServer(), StartSender() β€” HTTP file streams
β”‚   β”œβ”€β”€ port_manager.go# FindAvailablePort() β€” dynamic port binding
β”‚   β”œβ”€β”€ firewall.go    # RunFirewallSetup() β€” Linux firewall automation
β”‚   └── ...
β”œβ”€β”€ desktop/           # Wails desktop application (Go + Svelte)
β”‚   β”œβ”€β”€ app.go         # App lifecycle, config, event bridge
β”‚   β”œβ”€β”€ frontend/      # Svelte + Vite UI
β”‚   └── ...
└── go.work            # Go workspace root
Layer Technology Key Components
Frontend Svelte + Vite Reactive UI, drag-and-drop, QR display
Application Shell Go + Wails v2 App β€” event loop, config persistence (loadConfig, saveConfig)
Network Engine Go (net/http) StartServer, StartSender, writeFileToDisk β€” concurrent file I/O
Utilities Go getLocalIP, FindAvailablePort, RunFirewallSetup
Media Go AudioEngine β€” native audio playback

Architecture details derived from graphify analysis: 172 nodes, 223 edges, 20 communities.

Installation

Arch Linux (AUR)

yay -S beamsync-bin

Pre-built Binaries

Download the latest release from the Releases page.

Building from Source

Prerequisites

Steps

  1. Clone the repository:

    git clone https://github.com/PranavAgarkar07/BeamSync.git
    cd BeamSync
  2. Install frontend dependencies:

    cd desktop/frontend && npm install && cd ../..
  3. Run in development mode (hot reload):

    cd desktop && wails dev
  4. Build for production:

    cd desktop && wails build

    Compiled binaries are output to desktop/build/bin/.

Usage Guide

Receiving Files (Default Mode)

  1. Launch BeamSync.
  2. A connection QR code and URL are displayed automatically.
  3. Scan the QR code from a mobile device, or open the URL from another machine on the network.
  4. Incoming files are saved to Downloads/BeamSync/.

Sending Files

  1. Click Send or drag files onto the window.
  2. Select the files to transfer.
  3. A unique URL and QR code are generated.
  4. Open the URL or scan the QR on the receiving device to start the download.

Developer API

For developers, contributors, and security auditors who want to understand the underlying peer-to-peer file transfer protocol or build custom scripts/clients, the complete HTTP API and authentication specifications are available in the API Documentation (API.md).

Security & Privacy

  • Local-only β€” All transfers happen over your LAN. No external servers are contacted.
  • Zero data collection β€” BeamSync does not store, transmit, or analyze your files beyond the direct peer-to-peer transfer.
  • Open source β€” The entire codebase is available for audit.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contributing

Contributions are welcome. Please open an issue or submit a pull request.

About

This project is made to share large files faster

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors