docs

Ease docs/Rust

Rust SDK

Server-side Rust, async-first on the tokio runtime. The four GUI SDKs ship as closed-source binaries; the Rust ecosystem has no equivalent, so the source is NDA-gated and consumed as a Cargo git dependency pinned to a tagged release.

What it is

The Ease Rust SDK is the server-side member of the SDK family. It runs on the async tokio runtime and links libsignal-protocol for end-to-end encryption, consumed as a path or crate dependency rather than a published binary. It carries the same wire compatibility as the other SDKs: every tagged release interoperates with the concurrently released tags across platforms, and your onboarding names the tag set that belongs together.

Unlike the four GUI-targeted SDKs, which ship as closed-source binaries, crates.io publishes source by default and has no equivalent binary-distribution mechanism. Access is therefore gated: customers under contract sign an NDA and get read access to a private git source, then consume it as a Cargo git dependency. Revocation is one click; access is per-organisation.

Install

Once your GitHub team has read access to the source, add the git dependency to your Cargo.toml and pin a tag. Your onboarding includes the repository path and the current tag. Pin a tag rather than a branch: the repo moves in lockstep with the other SDKs, so a tagged release is the same surface and wire compatibility everywhere.

Platform support

The SDK targets the tokio async runtime and builds for the three server operating systems: Linux, macOS, and Windows. There is no GUI surface and no platform-specific rendering layer; the dependency is the same on every host.

  • tokio: async-first throughout. Every network and storage call is a .await point.
  • Linux, macOS, Windows: the same crate, the same tagged release, on all three.

The shape is the same everywhere

The Rust SDK exposes the same four named surfaces as every other Ease SDK, in idiomatic Rust: ease.me, ease.auth, ease.contacts, and ease.chat. If you know the calls on one SDK, you know them here. The concept pages and the quickstart describe each call: authentication included, and the shapes carry across.

The quickstart and concept samples are contract-verified in TypeScript; the same calls translate directly to Rust, give or take its idioms (fallible factories, the ? operator). The web SDK is the contract-verified reference for every sample on this site.

See also