open-standards/wai/examples/messaging
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science 632f8cf394 wai: the developer's path, hello, create, dev and verify, a floor build with no system library, and nine examples
wai-rs gains the feature floor (the mandatory floor of SPEC 5: PNG, FLAC and
zstd, decoded with no system codec library) and quickstart (the floor, and the
receipt checks hello and verify run). The wai command line gains four verbs,
one module each, named in one table (dx::VERBS):

- hello: name, dispatch, rebuild and receipt on a picture made here, the
  receipt laid out as http-delivery 8 lays receipts beside an object;
- create: a new project from one of the examples, whose files the binary
  holds; tests/cli_dx.rs holds them to wai/examples/ byte for byte;
- dev: the relay, the room service and the room page on one loopback origin,
  as a production front serves them; --check checks each piece through it;
- verify: the receipt indexes under a directory, checked offline.

The project file a template writes, wai.json, is read in one place
(dx/project.rs). wai/examples/ holds video-room, watch-together, messaging,
encoder-ingest, package-and-deliver, verify-receipts, apple-app, android-app
and remote-desktop, each with a README and a test that runs it through
wai create and wai dev. wai/quickstart/ builds the room client and the
archive that holds wai, the relay, the room service, the remote host and the
packager.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 22:58:39 -04:00
..
test wai: the developer's path, hello, create, dev and verify, a floor build with no system library, and nine examples 2026-10-26 22:58:39 -04:00
.gitignore wai: the developer's path, hello, create, dev and verify, a floor build with no system library, and nine examples 2026-10-26 22:58:39 -04:00
index.html wai: the developer's path, hello, create, dev and verify, a floor build with no system library, and nine examples 2026-10-26 22:58:39 -04:00
README.md wai: the developer's path, hello, create, dev and verify, a floor build with no system library, and nine examples 2026-10-26 22:58:39 -04:00
wai.json wai: the developer's path, hello, create, dev and verify, a floor build with no system library, and nine examples 2026-10-26 22:58:39 -04:00

Messaging and a call

What it shows. A conversation and a call, side by side. In the conversation each member makes its own key in its tab, keys into one end-to-end encrypted group through the service's log, seals each message before it leaves the tab, and opens and verifies each one it reads: the service stores ciphertext and signed records, never the text. A call is placed with a proof of the caller's key; the invitation rings in the callee's inbox, checked before it rings; answered, both enter a room with the grants the call came with. One that rings out is signed as missed by the room's clock.

Run it.

wai create my-chat --template messaging
cd my-chat
wai dev

Open http://127.0.0.1:8080/ in two browsers (two tabs of one browser share nothing, so that works too).

What you see. On the left, join the conversation in each and write: each side reads the other's messages, with threads, reactions, edits and retractions. On the right, paste one tab's key (under Your key) into the other's Keys to call and press Call: the first tab's inbox rings, and answering opens the call, camera and microphone on both sides.

Make it yours. The conversation's API is under /msg-api/ and the call's under /room-api/; both pages take ?service= to point at them.

With a coding assistant. Run wai setup-agent in this directory: it writes the instructions an assistant reads and connects it to WAI's tools.