Skip to content
 
 

Repository files navigation

Share-Beam

Fast, secure, and seamless local network file sharing — built for developers and content creators.

Share-Beam is a cross-platform Flutter application that lets you instantly share files, clipboard content, and data between any devices on the same local network — no internet connection, no cloud upload, no size limits.


Table of Contents


Overview

Share-Beam solves a real problem for developers, video editors, designers, and anyone who regularly moves files between a phone, laptop, or desktop: there is no fast, frictionless way to do it without a USB cable or a cloud service.

Share-Beam runs a lightweight HTTP server and WebSocket layer directly on the device. Any other device on the same Wi-Fi network can connect, browse, and transfer files instantly through a browser or the companion app — no account, no pairing ceremony, no waiting for uploads.


Features

  • Zero-Config Discovery — Uses mDNS/Bonjour (via bonsoir) to auto-discover other Share-Beam instances on the network. No IP addresses to type.
  • File Transfer — Pick any file from the device and beam it across the network at LAN speeds.
  • Clipboard Sync — Share clipboard text or images between devices in one tap.
  • Built-in HTTP Server — The shelf + shelf_router stack serves files directly from the device; any browser on the network can download without installing anything.
  • WebSocket Support — Real-time communication channel for clipboard sync and transfer status updates.
  • Cross-Platform — Runs on Android, iOS, Windows, macOS, Linux, and Web from a single codebase.
  • No Internet Required — Everything stays on your local network. Nothing leaves your home or office.
  • Gallery Save — Received images can be saved directly to the device gallery via gal.
  • Persistent Preferences — Settings and preferences are stored locally with shared_preferences.

Tech Stack

Layer Technology
Framework Flutter 3.x / Dart SDK ^3.4.4
HTTP Server shelf + shelf_router
WebSocket shelf_web_socket + web_socket_channel
Network Discovery bonsoir (mDNS/Bonjour)
File Picking file_picker + file_selector
Clipboard super_clipboard + pasteboard
State Management provider
Storage shared_preferences
Permissions permission_handler
Device Info device_info_plus
Gallery Save gal
Sharing share_plus

Getting Started

Prerequisites

Make sure you have the following installed:

  • Flutter SDK — version 3.x or later
  • Dart SDK ^3.4.4 (bundled with Flutter)
  • Android Studio / Xcode (for mobile targets)
  • A physical device or emulator connected to the same Wi-Fi network as the target device (for testing transfers)

Verify your Flutter environment:

flutter doctor

Installation

  1. Clone the repository
git clone https://github.com/HaronKhalid/Share-Beam.git
cd Share-Beam
  1. Install dependencies
flutter pub get
  1. Generate launcher icons (optional)
dart run flutter_launcher_icons

Running the App

Android

flutter run -d android

iOS

flutter run -d ios

Windows

flutter run -d windows

Linux

flutter run -d linux

Web (limited — local server features may not work in browser sandbox)

flutter run -d chrome

Release build (Android APK)

flutter build apk --release

How It Works

┌─────────────────────┐          Local Network (Wi-Fi)         ┌─────────────────────┐
│   Device A          │                                         │   Device B          │
│                     │  ① mDNS Discovery (bonsoir)            │                     │
│  Share-Beam         │◄───────────────────────────────────────►│  Share-Beam /       │
│                     │                                         │  Any Browser        │
│  shelf HTTP server  │  ② HTTP file transfer                  │                     │
│  :8080              │────────────────────────────────────────►│                     │
│                     │                                         │                     │
│  WebSocket server   │  ③ Real-time clipboard / status sync   │                     │
│  :8081              │◄───────────────────────────────────────►│                     │
└─────────────────────┘                                         └─────────────────────┘
  1. Discovery — On launch, Share-Beam advertises itself over mDNS so other devices on the network can find it automatically.
  2. Server — A shelf HTTP server starts on a local port and serves files selected by the user.
  3. Transfer — The receiving device hits the served URL, and the file streams over LAN at full network speed.
  4. Real-time sync — A WebSocket connection keeps clipboard content and transfer status in sync between paired devices.

Project Structure

Share-Beam/
├── lib/                    # Dart source code
│   └── ...                 # App screens, services, providers
├── android/                # Android-specific native code & config
├── ios/                    # iOS-specific native code & config
├── windows/                # Windows runner
├── linux/                  # Linux runner
├── web/                    # Web entry point
├── assets/
│   └── images/
│       └── logo.png        # App logo / launcher icon
├── test/                   # Unit and widget tests
├── .github/workflows/      # CI/CD pipelines
├── pubspec.yaml            # Project dependencies & metadata
└── analysis_options.yaml   # Dart linter configuration

Dependencies

Runtime

Package Purpose
shelf ^1.4.2 Lightweight HTTP server
shelf_router ^1.1.4 Route handling for the HTTP server
shelf_web_socket ^3.0.0 WebSocket support on the server
web_socket_channel ^3.0.3 WebSocket client
bonsoir ^6.1.0 mDNS/Bonjour network discovery
file_picker ^8.1.0 Cross-platform file picking
file_selector ^1.1.0 Desktop file selection
super_clipboard ^0.9.1 Clipboard read/write
pasteboard ^0.3.0 Extended clipboard support
provider ^6.1.5 State management
shared_preferences ^2.5.3 Persistent local storage
path_provider ^2.1.5 Platform-specific file paths
permission_handler ^12.0.1 Runtime permissions
device_info_plus ^10.1.2 Device metadata
share_plus ^12.0.2 Native share sheet
gal ^2.3.2 Save media to gallery
intl ^0.18.0 Internationalization
cupertino_icons ^1.0.8 iOS-style icons

Dev

Package Purpose
flutter_lints ^4.0.0 Recommended lint rules
flutter_launcher_icons ^0.13.1 Launcher icon generation
flutter_test Widget and unit testing

Platform Support

Platform Status
Android (API 21+) Supported
iOS Supported
Windows Supported
Linux Supported
macOS In progress
Web Partial (server features limited)

Contributing

Contributions are welcome! To get started:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/your-feature-name
  3. Commit your changes: git commit -m "feat: add your feature"
  4. Push to the branch: git push origin feature/your-feature-name
  5. Open a Pull Request

Please make sure your code passes the linter before submitting:

flutter analyze
flutter test

License

This project is open source. See the repository for license details.


Built with ❤️ using Flutter  ·  GitHub

About

A smart app for everone who is working as dev and editors to share data easily to any device through local host fast, secure and best way.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages