Skip to content

sdk: the transport moves to sdk/transport - #963

Merged
Japabu merged 2 commits into
mainfrom
wt/toyos-sdk-transport
Oct 21, 2026
Merged

Japabu merged 2 commits into
mainfrom
wt/toyos-sdk-transport

Conversation

@Japabu

@Japabu Japabu commented Oct 20, 2026 •

Copy link
Copy Markdown
Collaborator

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 moves toyos-transport from lib/blockring/transport to sdk/transport. The package keeps its name and its contents are unchanged.

What moved where

  • The whole crate moved, and nothing was split off. It is forbid(unsafe_code), no_std and makes no system call. Its adapters already live outside it: sdk/toyos/src/net/stream.rs, plus netstack's lent.rs and node streams.rs. So no part of it is a syscall adapter.
  • Path updates. Everything that named the old path now names the new one:
    • the workspace member list
    • the path dependencies of toyos, toyos-blockring, netstack and netstack's node
    • the crate's own toyos-untrusted dependency (path only; its use of Untrusted is untouched)
    • PUBLISHED in build/sdkversion.rs
    • SYSROOT_SOURCES, SYSROOT_MANIFESTS, STD_MANIFESTS and the std patch.crates-io path in build/sysroot.rs
    • the registry-refusal test in build/toolchain.rs
    • the three issue records that cite files in the crate.
  • No fork change. rust/library/Cargo.lock names toyos-transport by version only (no source path), and std reaches it through sysroot::std_patch, so no fork pin moves. The image build logs show std compiling toyos-transport from sdk/transport.
  • No change needed for issues: four records of today's landings, checked against the code and the CI logs #960. issues: four records of today's landings, checked against the code and the CI logs #960 has since landed and is merged in here (496df25); its record names the crate, not its path.
  • Out of scope. toyos-untrusted is 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.

check command exit log
host suite cargo run -- --ci host (87 steps) 0 ci-host.log
x86-64 image cargo run -- --build-only --arch x86_64 0 build-x86_64.log
AArch64 image cargo run -- --build-only --arch aarch64 0 build-aarch64.log
blockring guest row (QEMU x86-64) cargo test --test toyos-build -- nvme_disk_boots 0 guest-pr1.log

nvme_disk_boots is 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/transport would break; searches of the tree and of the Rust fork's library manifests found none.

🤖 Generated with Claude Code

Japabu and others added 2 commits October 21, 2026 00:22
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>
@Japabu

Japabu commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator Author

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. sdk/transport is no_std and forbid(unsafe_code). Its only dependencies are core and toyos-untrusted, and it contains no syscall, toyos_abi use or asm! (checked by grep over sdk/transport/src). The adapters remain in sdk/toyos/src/net/stream.rs and netstack, so moving the whole crate without splitting it is correct, and nothing is merged into toyos. The package name is unchanged and nothing is published.

Completeness.

  • git grep -e 'blockring/transport' -e 'blockring.transport' at 496df25 finds nothing (exit 1).
  • The remaining toyos-transport path references are the workspace member, the four path dependencies (toyos, toyos-blockring, netstack, netstack node), PUBLISHED, SYSROOT_SOURCES/SYSROOT_MANIFESTS/STD_MANIFESTS, the std-patch test, the toolchain.rs registry test and the three issue records. All of them point at sdk/transport.
  • build/ci.rs (TRANSPORT) and the clippy feature coverage refer to the crate by package name, so they need no change.
  • The crate's own toyos-untrusted relative path is corrected (../../lib/untrusted).

Fork. The claim that no fork change is needed holds. At the pinned rust commit 73f63e244, library/Cargo.lock lists toyos-transport 0.1.0 with no source, so the lockfile is unaffected by the path.

Evidence. ToyOSOrg/evidence 29a1f9ecc round1, at tree 191dd46:

  • --ci host: 87 steps, EXIT=0.
  • Both --build-only images: EXIT=0. The build log shows Compiling toyos-transport v0.1.0 (<tree>/sdk/transport).
  • nvme_disk_boots: EXIT=0.

The later merge to 496df25 adds only #958 (lib/crypto, a crypto parity guest binary, Cargo.lock +1) and the #960 issue records (checked with git diff --stat 191dd4618 496df257d). None of it touches the transport, its consumers or the sysroot wiring, so the evidence still applies. For a pure rename this is enough; no metal run is needed.

Net. 15 lines changed in, 15 out, plus the rename. No production or test growth.

Findings

None.

LAND

@Japabu
Japabu marked this pull request as ready for review October 21, 2026 00:02
@Japabu
Japabu added this pull request to the merge queue Oct 21, 2026
Merged via the queue into main with commit 9e1be12 Oct 21, 2026
8 checks passed
@Japabu
Japabu deleted the wt/toyos-sdk-transport branch October 21, 2026 00:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant