E2eeMember wraps joule-moq-mls's RoomMember: KeyPackage, lifecycle events and MLS messages in the carrier's order, staged create and commit, seal of an encoded frame (inner digest, envelope flag in the Immutable Properties, delivery timeout beside them) and open through the §6 checks, with the reason or the epoch to wait for. TrackSigner signs a sealed object's receipt over its sealed bytes (signSealed, no WAI_RECEIPT), and UniItem gives an object's property list as it was carried. e2eeCheckRecord checks WRE1. The e2ee build is a second wasm (joule_moq_web_e2ee) that a page loads for such a room alone; [profile.wasm] (release, LTO, one codegen unit, opt-level s) keeps it smaller. Co-Authored-By: Claude Opus 5.5 <[email protected]>
29 lines
1.5 KiB
TOML
29 lines
1.5 KiB
TOML
[package]
|
|
name = "joule-moq-web"
|
|
version = "0.1.0"
|
|
description = "joule-moq's draft-22 codec and receipts for the browser: control and data messages encoded and decoded, each object signed into its group receipt by a publisher and verified against it by a subscriber, built for wasm32-unknown-unknown with a small wasm-bindgen surface. A browser MOQT client (WebTransport, with a WebSocket fallback) and its end-to-end tests live beside it."
|
|
edition = "2024"
|
|
rust-version = "1.97"
|
|
license = "Apache-2.0"
|
|
repository = "https://github.com/transaction-science/open-standards"
|
|
|
|
[lib]
|
|
crate-type = ["cdylib", "rlib"]
|
|
|
|
[dependencies]
|
|
# The codec, carriage and receipts alone: no tokio, no native dependency.
|
|
joule-moq = { path = "../joule-moq", default-features = false }
|
|
ed25519-dalek = "2"
|
|
serde_json = "1"
|
|
hex = "0.4"
|
|
# Pinned to the wasm-bindgen CLI the build runs: the two must match exactly.
|
|
wasm-bindgen = "=0.2.127"
|
|
# The member of an end-to-end encrypted room (feature `e2ee`): MLS and the room's keys.
|
|
joule-moq-mls = { path = "../joule-moq-mls", optional = true }
|
|
|
|
[features]
|
|
# The member of an end-to-end encrypted room (WAI confidentiality): its MLS group, sealing
|
|
# and opening. Built as a second wasm, `joule_moq_web_e2ee`, that a page loads for such a
|
|
# room alone, so a page in any other room loads none of it. `joule-moq-mls/js` takes the
|
|
# browser's random generator and clock; on the host it changes nothing.
|
|
e2ee = ["dep:joule-moq-mls", "joule-moq-mls/js", "joule-moq/secure-objects"]
|