Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions quest/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@ grouped into milestones ordered by priority.

m0 holds urgent fixes. m1 is the work with a consumer waiting on it now:
the UniFFI fork moq switches to, the exporter spike that may replace it, and
the fork's perf work. m2 is research: the TypeScript translator, a track moq
compares against its WASM route, and the fork's gated or speculative work. m3
the fork's perf work. m2 is research: the TypeScript translator, which moq's
browser package adopts once it matches the handwritten one, and the fork's gated or
speculative work. m3
holds the build-speed tracks, which the
[build-speed benchmark](/bench/build/README.md) rescopes before they start,
and speculative work. m4 holds long-term research.
Expand All @@ -22,8 +23,6 @@ Decided with the maintainer on 2026-10-23, when rust2 was planned from moq
parts: the nix flake and direnv, just, the quest tree, and agent docs and
hooks.
- moq is the first consumer of each project, and pins rust2 as a flake input.
moq's browser line still ships WASM first; the translator here does not
replace that plan.
- The first quest that adds a crate also adds the Cargo workspace (moq's
workspace lints, including a reason on every suppression) and the cargo
steps of `just check`.
Expand Down
17 changes: 10 additions & 7 deletions quest/m2/ts-model/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,19 @@
## Goal

[rust2-ts](/ts/README.md) translates moq-net's model layer, with the workspace crates it
calls (kio, moq-clock, moq-pattern), as it translates the codec today, so moq can compare
the source-translator route against its WASM build on the code a browser session runs.
calls (kio, moq-clock, moq-pattern), as it translates the codec today, so moq can ship
`@moq/net` as JavaScript translated from its Rust, in place of the handwritten package.

## Plan

Decided with the maintainer on 2026-10-23: moq still ships WASM first; this is the
research track. Once the model translates, moq compares it on the
[TS benchmark](/ts/README.md#bench), consuming the driver as the `ts` package of
this flake. That comparison adds moq's `js/net/bench/frames.ts`, a group stream read
into a group, to the benchmark's workloads, which hold only its sync frame headers.
Decided with the maintainer on 2026-11-01, after moq removed its WASM build
([moq-dev/moq#7475](https://github.com/moq-dev/moq/pull/7475)): the translated model is
moq's browser route, which moq's [JS-only `@moq/net`](https://github.com/moq-dev/moq/blob/main/quest/m2/rs2ts-js.md)
adopts once it matches the handwritten package in a full browser workload. Once the model
translates, moq measures it on the [TS benchmark](/ts/README.md#bench), consuming the driver
as the `ts` package of this flake. That adds moq's `js/net/bench/frames.ts`, a group stream
read into a group, to the benchmark's workloads, which hold only its sync frame headers. The
codec's WASM route stays in the benchmark as the baseline of compiled Rust in a browser.

The codec's differential harness is the pattern to repeat. The shared npm runtime
(for checked integer ops and the rest of `rt.ts`) is published only once two
Expand Down