An open source Android, iOS, macOS, and Windows App for sending/receiveing files using the magic-wormhole protocol.
- Open source: Lightweight, clean and secure.
- Send/receive files via the magic-wormhole protocol
- Generate QR code of receive code
- Scan QR-Code of sender
- Dark theme
(feel free to add yours)
- Flutter (>= 3.22.0)
- Rust (MSRV >= 1.85.1)
- Just
Android only:
- Android NDK
- Android SDK (>= 31)
Add Rust Android targets:
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
Install cargo-ndk:
cargo install cargo-ndk
Build APK + App Bundle:
just apk
Dev build:
just linux
Dev build:
flutter build macos
Dev build:
flutter build windows
Format source code:
just format
Lint source code:
just lint
Generate translations:
just translation
Generate Flutter-Rust-Bridge code bindings:
just codegen
Clean build files:
just clean
Every kind of contribution is welcome. :)
If you know other languages than English/German/Swedish feel free to add new translations in lib/l10n/.
If you face any issues with the app you can gladly open an issue or fix it via a PR.
A great thanks to all the maintainers of the used libraries. Especially to magic-wormhole and flutter_rust_bridge.
- flutter_rust_bridge(MIT) - Flutter <-> Rust ffi code generation
- ffi(BSD-3-Clause) - call native .so lib code from dart
- file_picker(MIT) - OS Native Filepicker Impl.
- path_provider(BSD-3-Clause) - Get Platforms common paths
- share_plus(BSD-3-Clause) - Open Platforms share dialog
- open_filex(BSD-3-Clause) - Open Platforms file-open dialog
- barcode_widget(Apache-2.0) - QR/Aztec code generation
- flutter_zxing(MIT) - QR/Aztec code scanner
- provider(MIT) - Consumer/Provider patterns
- shared_preferences(BSD-3-Clause) - Platform wrapper for key-value pairs
- share_handler(MIT) - receive of platform share intents
- vibration(BSD-2-Clause) - control haptic feedbacks
- intl(BSD-3-Clause) - handle localisation
- fluttertoast(MIT) - pretty toast popups
- toggle_switch(MIT) - pretty toggle switches
- permission_handler (MIT) - handle platform permissions
- url_launcher (BSD-3-Clause) - open urls in platform default browser
- flutter_close_app(MIT) - proper close of app
- media_scanner (MIT) - trigger media library scan on Android
- device_info_plus (BSD-3-Clause) - get device information
- app_links (Apache-2.0) - handle deep linking/universal links
- logger (MIT) - structured logging
- rotation_log (MIT) - log file rotation and archiving
- anyhow(MIT) - Error handling
- magic-wormhole(EUPL-1.2) - magic-wormhole client
- futures(MIT) - async/await async programming
- async-std(MIT) - async std-lib
- url(MIT) - url generation lib
- zip(MIT) - ZIP file compression/decompression
- fastrand(MIT) - fast random number generation
- log(MIT) - logging facade for Rust
- flutter_logger(MIT/Apache-2.0) - bridge Rust logs to Flutter
Copyright (C) 2025 Lukas Heiligenbrunner
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.