Skip to content

Repository files navigation

Rowd icon Rowd

Warning

Unstable alpha (0.6.0). Bugs may interrupt sync or require manual recovery. Do not rely on Rowd as the only copy of important files. Start with disposable folders and keep an independent backup.

Rowd syncs folders between one Linux PC and one Android phone on the same local network. You choose which folders connect and whether files travel both ways, to Android, or to the PC. The devices transfer files over TLS without a cloud account or relay.

The Rust test suite and Android build pass, and the app has seen use on a real device. We have not documented a full test matrix across Android storage providers, long sessions, network failures, and recovery.

Get Rowd

Download both files from the 0.6.0 alpha release:

Device File
Linux x86_64 rowd-v0.6.0-alpha-linux-x86_64
Android 8 or newer, ARM64 rowd-v0.6.0-alpha-android-arm64.apk

The release includes rowd-v0.6.0-alpha-SHA256SUMS so you can check both downloads. The Android release APK is signed with the debug key. Update the PC binary and APK together to use LAN discovery; both builds use sync protocol V12.

On Linux, make the downloaded binary executable and start it:

chmod +x rowd-v0.6.0-alpha-linux-x86_64
./rowd-v0.6.0-alpha-linux-x86_64

Keep both devices on the same LAN. The phone must reach TCP port 43821 and multicast UDP 239.255.42.99:43822 on the PC. If multicast is blocked, Rowd tries the address stored in the invitation.

Pair and sync a folder

  1. Open the Device tab in the Linux terminal app and select Conectar celular to display the QR. The CLI equivalent is rowd pair; --address 192.168.1.20:43821 is available when you want to set a fallback address.
  2. On Android, tap Parear por QR and scan the code. Compare the certificate fingerprint shown on both devices before accepting it.
  3. Tap Escolher pasta para novo Share on Android. Choose a folder, name the Share, and choose its direction.
  4. Open Requests in the Linux app, accept the request, and select the matching PC folder.
  5. Leave Rowd running on both devices while you want changes to sync.

The Android buttons still use Portuguese labels. You can also create a Share on the PC and bind its Android folder with Vincular pasta a Share pendente. The user guide covers both paths and the CLI.

Performance trace

For synchronization diagnostics, run rowd run --trace on the PC. In the terminal app, press t on the Device tab to toggle tracing. On Android, enable Trace de desempenho on the main screen. Each device writes its own trace; use Exportar trace on Android to save both Android traces in a ZIP. See the trace guide for file locations and details.

What happens to your files

Change Behavior
New or modified file A trusted watcher event can limit the next round to that path. Rowd verifies content with SHA-256 before transfer and installation.
Concurrent edits Rowd preserves both versions and records a conflict.
Delete or rename Rowd scans the Share to resolve the change. It does not propagate deletions; a removed file can return from the other device.
Missed event or lost scan trust Rowd falls back to an audit. Android can reuse cached hashes during a namespace audit and rehashes files when a deep audit is required.

Each Share has its own mode, convergence base, conflict records, and recovery state. The devices reuse one TLS connection between rounds while the Android service runs. The Android service may stop under platform limits; Rowd reconnects when it can.

Rowd does not sync symlinks, empty folders, original permissions, or timestamps. It transfers whole files and does not resume a partial file transfer. One PC pairs with one Android device at a time. See limits and recovery before using a folder that matters to you.

Build and test

The desktop app is a Rust workspace package:

cargo build --release -p rowd
cargo fmt --all --check
cargo test --workspace --locked
cargo clippy --workspace --all-targets --all-features --locked

The Android build needs JDK 17, Android SDK 35, NDK 27.2, and Gradle 8.9. scripts/build-android.sh uses the repository's local .toolchain/ directory. Local and GitHub Actions builds produce a release APK; the debug variant is disabled because it has serious performance costs.

Documentation

  • User guide: pairing, Share modes, CLI, backup, and recovery.
  • Architecture: protocol, storage, and trust boundaries. This document is in Portuguese.

Rowd is licensed under MIT.

Releases

Packages

Contributors

Languages