Official SDKs
Four languages,
one protocol
Official SDKs for Go, TypeScript, Python, and Rust, all maintained in the same monorepo with full feature parity.
Connect to a relay
key, err := relayly.LoadOrGenerateKey("~/.relayly/device.key")
if err != nil {
log.Fatal(err)
}
client, err := relayly.Connect(ctx, "wss://your-server", relayly.Options{
DeviceID: "my-laptop",
PrivateKey: key,
})
if err != nil {
log.Fatal(err)
}
defer client.Close()Pair devices
// Device A - request a code
code, err := client.RequestPairCode(ctx)
fmt.Println("Share this code:", code.Short)
// Device B - accept a code
peer, err := client.AcceptPair(ctx, "483921")Send & receive
err = client.Send(ctx, peer.ID, []byte("hello!"))
for msg := range client.Messages() {
fmt.Printf("[%s] %s\n", msg.From, msg.Payload)
}Auto-reconnect: Exponential backoff built in.
Configure with ReconnectDelay, MaxReconnectDelay, OnDisconnect, and OnReconnect.
Want to contribute an SDK for another language?
Open a PR on GitHub