Skip to content

About

Unison's core engine.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

16 Commits

Folders and files

Repository files navigation

Unison engine

The Rust engine behind Unison, a native Discord client: protocol, state, rules, voice, and the unison-ffi surface that thin native shells call. GPL-3.0-or-later. Every release of Unison is one tag of this repository (vX.Y.Z), so you can build on the engine and take new releases with one line.

Crate What
unison-core Protocol (REST, gateway, voice), store, cache, sessions, every rule
unison-ffi The one surface a shell calls (UniFFI: Swift, Kotlin, Python bindings)
unison-etf, unison-markdown Discord's term format, message markdown

Use it from Rust

Follow the latest release. main always points at the newest tag:

[dependencies]
unison-ffi = { git = "https://github.com/woflydev/unison-engine", branch = "main" }
unison-core = { git = "https://github.com/woflydev/unison-engine", branch = "main" }

Run cargo update -p unison-core -p unison-ffi to take a new release.

Need a build that never changes? Pin a tag instead (tags never move, so a pinned build is reproducible), and bump it when you want a newer release:

unison-ffi = { git = "https://github.com/woflydev/unison-engine", tag = "vX.Y.Z" }

Every release also has a zip of its source at https://github.com/woflydev/unison-engine/archive/refs/tags/vX.Y.Z.zip.

Build a shell for a new platform

Read docs/ARCHITECTURE.md first (what belongs in the engine and what in a shell), then docs/PORTING.md. The releases page carries a devkit zip with prebuilt libraries, generated bindings and a guide written for coding agents.

Rules that outrank everything

Never send a message, ring a call, join a server or change account state from automation or tests; every state-changing call needs a real user gesture. Never log or print tokens. Test with a throwaway account or offline.

About

Unison's core engine.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages