- Git 2.30+
- Docker & Docker Compose (for running the server locally)
- Rust (stable toolchain)
cargo(comes with Rust)
- Flutter SDK (stable channel)
- Android: Android Studio + Android SDK
- iOS: Xcode (macOS only)
- Windows: Visual Studio with "Desktop development with C++" workload
- macOS: Xcode command line tools
# Clone the repository
git clone https://github.com/<org>/bonded.git
cd bonded
# Workspace baseline
cargo build --workspace
cargo test --workspaceThe Rust workspace scaffolding is present. Android scaffold is planned and not yet created.
# Direct from workspace root
cargo run -p bonded-server
# Docker
docker build -f server/Dockerfile -t bonded-server .
docker run -p 8080:8080 bonded-server# Workspace baseline once migrated
cargo fmt --all --check
cargo test --workspace
# Android smoke build once scaffolded
cd android
flutter pub get
flutter build apk --debugThere is not yet a Flutter client scaffold in the repository. The implementation order is:
- Shared Rust core
- Server
- Linux CLI client
- Android client
- VS Code with extensions:
- rust-analyzer (server)
- Flutter / Dart (client)
- Even Better TOML (Cargo.toml editing)
- Android Studio — alternative for Flutter development
Bonded's Android client uses Flutter for UI and a pre-compiled Rust shared library (libbonded_ffi.so) for VPN/session logic.
- Rust toolchain with Android targets:
rustup target add aarch64-linux-android x86_64-linux-android
- Android NDK 26.x installed. A working
.cargo/config.tomlis committed at the repo root — update the NDK version path if your installation differs. - Flutter SDK (stable channel) and Android SDK.
# Build for physical devices (arm64)
cargo build --target aarch64-linux-android -p bonded-ffi --release
# Build for x86_64 emulators
cargo build --target x86_64-linux-android -p bonded-ffi --release
# Copy to jniLibs
mkdir -p android/android/app/src/main/jniLibs/arm64-v8a
mkdir -p android/android/app/src/main/jniLibs/x86_64
cp target/aarch64-linux-android/release/libbonded_ffi.so android/android/app/src/main/jniLibs/arm64-v8a/
cp target/x86_64-linux-android/release/libbonded_ffi.so android/android/app/src/main/jniLibs/x86_64/cd android
flutter pub get
flutter build apk --debug
# APK will be at: build/app/outputs/flutter-apk/app-debug.apk# All workspace tests including Android FFI smoke tests
cargo test --workspace
# Flutter static analysis
cd android && flutter analyze