An open source tool to leverage multiple internet connections for a more robust, reliable connection.
This repository is in early implementation. The current source of truth for scope and sequencing is:
docs/requirements/product-requirements.mddocs/requirements/platform-requirements.mddocs/requirements/open-questions.mddocs/design/implementation-plan.mdAGENTS.md
Bonded aggregates several internet connections (Wi-Fi, cellular, Ethernet, etc.) to provide improved reliability, bandwidth, and failover. It consists of a server component that acts as a traffic aggregation point and client applications that manage local network interfaces and tunnel traffic through them.
┌─────────────────────┐ ┌──────────────────┐
│ Client │ │ Server │
│ (Flutter app) │ │ (Rust + Docker) │
│ │ │ │
│ ┌──────────────┐ │ ═══╗ │ ┌─────────────┐ │
│ │ Interface A │───┼─────╬───┼──│ Aggregator │ │
│ │ (Wi-Fi) │ │ ║ │ │ │ │
│ ├──────────────┤ │ ║ │ │ Reassemble │ │
│ │ Interface B │───┼─────╬───┼──│ & Forward │ │
│ │ (Cellular) │ │ ║ │ │ │ │
│ ├──────────────┤ │ ║ │ └──────┬──────┘ │
│ │ Interface C │───┼─────╝ │ │ │
│ │ (Ethernet) │ │ │ ▼ │
│ └──────────────┘ │ │ Internet │
└─────────────────────┘ └──────────────────┘
bonded/
├── crates/
│ ├── bonded-core/ # Shared protocol/session/auth/scheduler primitives
│ ├── bonded-server/ # Server binary
│ ├── bonded-client/ # Shared client runtime
│ └── bonded-cli/ # Linux CLI client binary
├── server/ # Docker and migration compatibility assets
├── docs/
│ ├── requirements/ # Product requirements and specifications
│ ├── design/ # Technical design documents
│ └── guides/ # Developer guides and onboarding
└── AGENTS.md # Implementation instructions for coding agents
Note: This project is in early development. See docs/guides/dev-setup.md for development environment setup.
- Server: Rust (stable), Docker
- Client: Flutter SDK (stable channel), platform-specific SDKs for target platforms
# Workspace (server + linux cli + shared core)
cargo build --workspace
# Or build server only
cargo build -p bonded-serverAndroid scaffold is planned but not created yet. Implementation order is:
- Shared Rust core
- Server
- Linux CLI client
- Android client
| Platform | Role | Status |
|---|---|---|
| Linux | Server + CLI Client | Planned |
| Android | Client | Planned |
| iOS | Client | Planned |
| Windows | Client | Planned |
| macOS | Client | Planned |
TBD — See LICENSE for details.
See CONTRIBUTING.md for guidelines.