Bolt
Bolt is a family of clients and services that share one Rust core. Files travel directly between sender and receiver over WebRTC, encrypted end to end with NaCl. A small rendezvous service helps the two sides find each other, then steps out of the way. Browser, native macOS, and CLI clients all speak the same protocol so a phone in San Francisco and a laptop in Austin can hand a file off without the bytes ever touching a vendor.
↳ highlights
- 01 Zero file storage. Bytes flow peer to peer, never persisted on any server we run.
- 02 End to end encryption with NaCl, keys never leave the endpoints.
- 03 One Rust core, many surfaces. Browser SDK, SwiftUI app, CLI, all share the same protocol.
- 04 Custom rendezvous protocol over WebSocket and WebTransport.
↳ components
Browser client. Vanilla TypeScript, Tailwind, WebRTC, TweetNaCl.
Native macOS app. SwiftUI talks to the Rust core via FFI, with bolt-daemon as a sidecar.
Web monorepo, the next generation surface. React 18, Vite, Tailwind, shadcn, Rust.
Rust crate. The protocol, crypto, and transport that every client links against.
Rust service that runs alongside native clients. Tokio, WebSocket, WebTransport.
Specification. The contract every client and server holds to.
Stateless WebSocket signal server. Rust, Tokio, Tungstenite.