/localsend

An open source cross-platform alternative to AirDrop

Primary LanguageDartMIT LicenseMIT

LocalSend

LocalSend is a free, open-source app that allows you to securely share files and messages with nearby devices over your local network, without needing an internet connection.

CI status

Links: Homepage

About

LocalSend is a cross-platform app that enables secure communication between devices using a REST API and HTTPS encryption. Unlike other messaging apps that rely on external servers, LocalSend doesn't require an internet connection or third-party servers, making it a fast and reliable solution for local communication.

Screenshots

iPhone screenshot PC screenshot

Download

It is recommended to download the app either from an app store or from a package manager because the app does not have auto-update.

On Windows, the store version is not available anymore: localsend#220

Windows MacOS Linux Andoid iOS Fire OS
Windows Store App Store Flathub Play Store App Store Amazon
Winget DMG Installer AUR F-Droid
Scoop AppImage APK
MSIX Installer
Portable ZIP

How it Works

LocalSend uses a secure communication protocol that allows devices to communicate with each other using a REST API. All data is sent securely over HTTPS, and the TLS/SSL certificate is generated on the fly on each device, ensuring maximum security.

For more information on the LocalSend Protocol, see the documentation.

Getting Started

To get started with LocalSend, follow these steps:

  1. Install Flutter
  2. Clone the LocalSend repository
  3. Run flutter pub get to download dependencies
  4. Run flutter pub run build_runner build -d to generate code
  5. Run flutter run to start the app

Contributing

We welcome contributions from anyone who is interested in helping improve LocalSend. If you'd like to contribute, there are a few ways to get involved:

Translation

You can help translating this app to other languages!

  1. Fork this repository
  2. Choose one
    • Add missing translations in existing languages: Only update _missing_translations_<locale>.json in assets/i18n
    • Fix existing translations: Update strings_<locale>.i18n.json in assets/i18n
    • Add new languages: Create a new file, see also: locale codes.
  3. Optional: Re-run this app
    1. Make sure you have run this app once.
    2. Update translations via flutter pub run slang
    3. Run app via flutter run
  4. Open a pull request

Bug fixes and improvements

  • Bug Fixes: If you find a bug, please create a pull request with a clear description of the issue and how to fix it.
  • Improvements: Have an idea for how to improve LocalSend? Please create an issue first so we can discuss why the improvement is needed.

For more information, see the contributing guide.

Building

These commands are intended for maintainers only.

Android

Traditional APK

flutter build apk

AppBundle for Google Play

flutter build appbundle

iOS

flutter build ipa

MacOS

flutter build macos

Windows

Traditional

flutter build windows

Local MSIX App

flutter pub run msix:create

Store ready

flutter pub run msix:create --store

Linux

Traditional

flutter build linux

AppImage

appimage-builder --recipe AppImageBuilder.yml

Snap

Feel free to open a pull request. There is a snap branch to play with.