Skip to content

codingwell/bonded

Repository files navigation

Bonded

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.md
  • docs/requirements/platform-requirements.md
  • docs/requirements/open-questions.md
  • docs/design/implementation-plan.md
  • AGENTS.md

Overview

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.

Architecture

┌─────────────────────┐         ┌──────────────────┐
│      Client          │         │      Server       │
│  (Flutter app)       │         │  (Rust + Docker)  │
│                      │         │                   │
│  ┌──────────────┐   │  ═══╗   │  ┌─────────────┐ │
│  │  Interface A  │───┼─────╬───┼──│  Aggregator  │ │
│  │  (Wi-Fi)      │   │    ║   │  │              │ │
│  ├──────────────┤   │    ║   │  │  Reassemble   │ │
│  │  Interface B  │───┼─────╬───┼──│  & Forward   │ │
│  │  (Cellular)   │   │    ║   │  │              │ │
│  ├──────────────┤   │    ║   │  └──────┬──────┘ │
│  │  Interface C  │───┼─────╝   │         │        │
│  │  (Ethernet)   │   │         │         ▼        │
│  └──────────────┘   │         │     Internet      │
└─────────────────────┘         └──────────────────┘

Repository Structure

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

Getting Started

Note: This project is in early development. See docs/guides/dev-setup.md for development environment setup.

Prerequisites

  • Server: Rust (stable), Docker
  • Client: Flutter SDK (stable channel), platform-specific SDKs for target platforms

Building

# Workspace (server + linux cli + shared core)
cargo build --workspace

# Or build server only
cargo build -p bonded-server

Android scaffold is planned but not created yet. Implementation order is:

  1. Shared Rust core
  2. Server
  3. Linux CLI client
  4. Android client

Supported Platforms

Platform Role Status
Linux Server + CLI Client Planned
Android Client Planned
iOS Client Planned
Windows Client Planned
macOS Client Planned

License

TBD — See LICENSE for details.

Contributing

See CONTRIBUTING.md for guidelines.

About

An internet connection force multiplier

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors