Rust Core
The reference client engine: actor command queue, SQLite and Sled local storage, sync, event broadcast, and the FFI surface.
SDKs & API overview
Rust is the reference engine; Kotlin shares it natively through UniFFI, and TypeScript is an idiomatic WebSocket implementation. All SDKs implement the same wire protocol, with cross-language codec fixtures.
Developer experience
The snippets below show the real API shapes: connect, authenticate, subscribe. For a full build, start from each repository README.
$ # npm package coming soon — build from source: github.com/privchat/privchat-sdk-typescript
import { PrivchatClient } from "@privchat/sdk";
const client = new PrivchatClient({
url: "wss://im.example.com:9080/",
});
await client.connect();
await client.authenticate(userId, accessToken, deviceId);
await client.subscribeChannel("900710001", 1);
client.onPushMessage((message) => {
console.log("new message", message.server_message_id);
});The three tracks
Pick the language that fits your surface — the wire contract is shared, so every SDK speaks the same protocol to the same server.
The reference client engine: actor command queue, SQLite and Sled local storage, sync, event broadcast, and the FFI surface.
Browser and desktop runtime with typed codecs, RPC sugar, event replay, auto-reconnect, and token refresh built in.
Android and native targets backed by the Rust engine via UniFFI — one engine underneath every mobile app.
Capability matrix
These are shipped capabilities, not a wishlist — the roadmap strip below is where future tracks live until they are real.
Next step
Follow the guide paths into each repository — server, SDKs, and protocol — and build from the READMEs.