| android | ||
| assets | ||
| docker | ||
| fastlane | ||
| ios | ||
| lib | ||
| linux | ||
| macos | ||
| rust | ||
| rust_builder | ||
| test | ||
| windows | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .metadata | ||
| .tool-versions | ||
| analysis_options.yaml | ||
| CHANGELOG.md | ||
| flutter_rust_bridge.yaml | ||
| i10n.yml | ||
| LICENSE | ||
| Makefile | ||
| pubspec.lock | ||
| pubspec.yaml | ||
| README.md | ||
Wormhole
This fork has now been merged into http://github.com/wormhole-app/wormhole
An open source Android App for sending/receiveing files using the magic-wormhole protocol.
Preview

Features
- 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
Compatible Desktop Applications:
(feel free to add yours)
Development
Build app
Install Android SDK, Flutter and rustup.
You might want to set your Java version to <20:
add to your gradle.properties:
org.gradle.java.home=/usr/lib/jvm/java-17-openjdk/
Install Android ndk version 24.0.8215888:
sdkmanager "ndk;24.0.8215888"
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+appbundle:
make apk
Dev Linux build:
make linux
Format/Lint
Format source code:
make format
Lint source code:
make lint
Code generation
Generate translations:
make translation
Generate Flutter-Rust-Bridge code bindings:
make codegen
Cleanup
Clean build files:
make clean
Contribution
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.
Used libraries
A great thanks to all the maintainers of the used libraries. Especially to magic-wormhole and flutter_rust_bridge.
Flutter
- 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
Rust
- 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
- yaml-rust(MIT) - yaml parser
License
Copyright (C) 2023 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/>.

