| Filename | Latest commit message | Latest commit date |
|---|---|---|
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]> |
||
| .. | ||
| Sources/WaiApp | ||
| test | ||
| .gitignore | ||
| Package.swift | ||
| README.md | ||
| sample-session.json | ||
| wai.json | ||
A native app on Apple platforms
What it shows. The WAI native sink in a SwiftUI app. The platform's player plays as it
always does; the sink sits on the path of its requests, verifies each playlist against its
receipt and each object against the hash its name states, withholds what does not verify,
signs an acknowledgement of what was received, and at the end signs a bundle the stream's
owner verifies. --replay runs a recorded playback session through the same sink with no
window, and checks the bundle.
Run it. The sink is the wai-sink-swift package of the WAI repository; build it once
(macOS with Xcode), then point this project at it:
wai create my-app --template apple-app
cd <your clone>/wai/wai-sink-swift && WAI_SINK_SLICES=macos scripts/build-xcframework.sh
cd my-app
export WAI_SINK_SWIFT=<your clone>/wai/wai-sink-swift
swift run WaiApp --replay sample-session.json
swift run WaiApp
What you see. The replay prints how many playlists and objects went through the sink and
that the bundle verifies. The player opens a window: give it an HLS address (the
package-and-deliver example's, under wai dev, by default) and press Play.
Make it yours. PlayerApp.swift is the whole integration: a WaiSink.Config, a
WaiPlayerSession, and its player in a VideoPlayer. For a stream its owner seals, set
requireSigned: true, and nothing the owner did not sign reaches the decoder.
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.