Repository navigation
sdk: the transport moves to sdk/transport - #963
Conversation
The owner placed transport in the SDK: it is the session layer every userland client and server speaks, and std links it through `toyos`, so it is SDK surface rather than a part of the block protocol it sat beneath. The crate is pure, `forbid(unsafe_code)`, and makes no system call; its adapters are already elsewhere (`sdk/toyos/src/net/stream.rs`, netstack's `lent` and `streams`), so the whole crate moves and nothing splits. The package keeps its name, `toyos-transport`. Every path that names it follows: the workspace member, the path dependencies of `toyos`, `toyos-blockring`, netstack and its node, its own `toyos-untrusted` dependency, `PUBLISHED`, the sysroot's sources, manifests and std patch, the toolchain's registry-refusal test, and the issue records that cite files in it. The Rust fork's lockfile names the crate by version only, so no fork pin moves. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review of #963 at 496df25 (round 1)Architecture. This matches the owner's decision of 2026-10-21 that transport belongs in the SDK, with shared host-testable logic kept apart from syscall adapters. Completeness.
Fork. The claim that no fork change is needed holds. At the pinned Evidence. ToyOSOrg/evidence 29a1f9ecc round1, at tree 191dd46:
The later merge to 496df25 adds only #958 ( Net. 15 lines changed in, 15 out, plus the rename. No production or test growth. FindingsNone. LAND |
The owner placed transport in the SDK (2026-10-21): it is the session layer every userland client and server speaks, and std links it through
toyos. This PR movestoyos-transportfromlib/blockring/transporttosdk/transport. The package keeps its name and its contents are unchanged.What moved where
forbid(unsafe_code),no_stdand makes no system call. Its adapters already live outside it:sdk/toyos/src/net/stream.rs, plus netstack'slent.rsand nodestreams.rs. So no part of it is a syscall adapter.toyos,toyos-blockring, netstack and netstack's nodetoyos-untrusteddependency (path only; its use ofUntrustedis untouched)PUBLISHEDinbuild/sdkversion.rsSYSROOT_SOURCES,SYSROOT_MANIFESTS,STD_MANIFESTSand the stdpatch.crates-iopath inbuild/sysroot.rsbuild/toolchain.rsrust/library/Cargo.locknamestoyos-transportby version only (no source path), and std reaches it throughsysroot::std_patch, so no fork pin moves. The image build logs show std compilingtoyos-transportfromsdk/transport.toyos-untrustedis untouched here; its removal follows as a stacked PR. Nothing is published to crates.io.Checks (tree 191dd46, macOS aarch64 host)
The head, 496df25, adds only the merge of main (#958 crypto parity, #960 issue records); neither touches the transport, its consumers or the sysroot wiring, so these results stand.
cargo run -- --ci host(87 steps)cargo run -- --build-only --arch x86_64cargo run -- --build-only --arch aarch64cargo test --test toyos-build -- nvme_disk_bootsnvme_disk_bootsis a booted guest whose system volume is read through diskserver over blockring, which runs on these rings. The std stream path (stream_handles) is a member of the shared metal boot only. I requested no metal run: the move changes no source, so the guest bytes differ only in embedded source paths.Risks
None known beyond the path itself. Anything outside this repository that hard-codes
lib/blockring/transportwould break; searches of the tree and of the Rust fork's library manifests found none.🤖 Generated with Claude Code