evanacci.dev / project / bolt
↳ project 01 in production

Bolt

“encrypted P2P file transfer”

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

localbolt

Browser client. Vanilla TypeScript, Tailwind, WebRTC, TweetNaCl.

localbolt-app

Native macOS app. SwiftUI talks to the Rust core via FFI, with bolt-daemon as a sidecar.

localbolt-v3

Web monorepo, the next generation surface. React 18, Vite, Tailwind, shadcn, Rust.

bolt-core-sdk

Rust crate. The protocol, crypto, and transport that every client links against.

bolt-daemon

Rust service that runs alongside native clients. Tokio, WebSocket, WebTransport.

bolt-protocol

Specification. The contract every client and server holds to.

bolt-rendezvous

Stateless WebSocket signal server. Rust, Tokio, Tungstenite.

stack

RustTypeScriptWebRTCNaClSwiftUIReact

links

back to work