crabpilot.dev
BlogPricing
Commercial

Reliable MAVLink
over the internet.

Commercial WebSocket transport that bridges vehicle telemetry and commands over lossy public networks. Automatic reconnect, backpressure, end-to-end encryption — a drop-in client crate for CrabStation Pro and CrabCompanion. Licensed per deployment.

CrabCom

Topology preview coming soon
Transports

WSS by default. Plain WS for dev. Multipath cellular on request.

Same wire format from lab bench to LTE bonded link. Choose what your operating environment can give you.

Shipping

WSS — WebSocket Secure

TLS 1.3 · default transport

Persistent encrypted socket between companion and operator. Single port (443), proxies clean through corporate firewalls and CGNATs.

TLS 1.3 with mTLS optional

Permessage-deflate compression

Tested across LTE, Starlink, ground hops

Shipping

WS — Plain WebSocket

Trusted networks · debug

Unencrypted variant for development, in-lab testing, and trusted VPN overlays. Identical framing, same reconnect semantics.

Lower CPU on Jetson / Raspberry Pi

Drop-in over Wireguard or Tailscale

Same backpressure model as WSS

On request

Multipath cellular

Aggregator backend

Bond two or more LTE / 5G modems for resilience in motion. Latency-aware scheduler picks the best path per frame.

Per-flow path selection

Seamless failover under signal loss

Quectel + Sierra modem support

Capabilities

Survives cellular handover, Starlink jitter, and corporate-firewall NAT.

BVLOS, urban canyon, cellular bond. The control loop never sees the jitter.

Automatic reconnect

Exponential backoff with jitter. The vehicle stays paired with the operator session across NAT rebinds and outages.

End-to-end encryption

TLS 1.3 between companion and operator. Optional mTLS for fleet authentication. Pre-shared keys for air-gapped setups.

NAT + CGNAT traversal

Outbound-only sockets through a relay server. Works behind corporate firewalls, mobile broadband and Starlink.

Backpressure + framing

Bounded send queues per priority. High-rate telemetry drops first; commands and acks never starve.

Multi-client fan-out

One companion, many operators. Read-only viewers and a single command authority — enforced server-side.

Bandwidth-adaptive

Telemetry rate shrinks on saturated links. Video pipeline negotiates separately and never blocks control.

Architecture

Companion dials out. Operator connects in.

No inbound ports on the vehicle. The relay holds the connection, authenticates both sides, fans out to many operators.

CrabCom is the internet transport. It is the client crate CrabStation and CrabCommander use to reach a vehicle, and it bridges to a CrabCompanion daemon on the aircraft. CrabCompanion is the commercial companion-compute product — CrabCom is how operators connect to it over the internet. Run CrabCom against your own companion, or pair it with CrabCompanion for a supported stack.

Explore CrabCompanion

Data flow

1

Vehicle + flight controller

CrabPilot, ArduPilot, PX4 — local MAVLink over UART
2

CrabCompanion daemon (commercial)

Embeds CrabCom, wraps the bus, dials out to the relay
3

CrabCom relay (cloud or on-prem)

Authenticates, fans out to operator clients
4

Operator

CrabStation, browser dashboard, automation script

Connect a client

Rust client crate. Tokio, async/await, retries built in. There is also a TypeScript client for browser dashboards.

use crabcom::{Client, ClientConfig};

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let cfg = ClientConfig::wss("wss://relay.example.com/v1")
        .with_token(std::env::var("CRABCOM_TOKEN")?)
        .with_reconnect_backoff_ms(500, 30_000);

    let client = Client::connect(cfg).await?;

    // Subscribe to MAVLink frames from the vehicle
    let mut rx = client.subscribe("mavlink").await?;
    while let Some(frame) = rx.recv().await {
        println!("{} byte frame", frame.payload.len());
    }
    Ok(())
}
Use cases

When the link is the problem

BVLOS operations

Fly past line of sight from any control room. Operator stays connected through cellular handover, link blackout, and Starlink jitter.

Distributed teams

Pilot in one country, observer in another, ops manager watching a dashboard. One companion, many viewers, one command authority.

Cellular bridging

Replace the radio modem with an LTE link. Aggregate two SIMs for redundancy. No port forwarding, no static IPs.

Optional managed service

Don't want to run a relay? We'll host it.

CrabCom is a commercial crate, licensed with CrabStation Pro and CrabCommander deployments — you can run the relay on your own infrastructure. For teams that would rather not operate relay infrastructure, we can run a managed relay as a paid service. Pricing per engagement.

Managed relay hosting — we run the infrastructure for you

mTLS + token issuance and rotation for your fleet

Multipath cellular aggregation for vehicles in motion

Monitoring, alerting, and capacity scaling

Ongoing engineering support

Talk to us