Tracking the dependency-level prerequisite discovered in Stacks #2450.
The public @stacksjs/bun-router 0.1.11 entry and its eagerly imported chunks initialize node:crypto even for a bare router. In source, static imports are present in auth.ts and middleware/{csrf,response_cache,performance_monitor,file_upload,request_id}.ts. These imports survive into the published entry/chunks because the barrel re-exports the features.
On Bun 1.3.14/macOS arm64, a fresh node:crypto import alone costs about 4 ms and 5 MB RSS. This is a direction-only diagnostic, not an amount that can simply be subtracted from application startup. A proposed Stacks-only deferral showed no RSS improvement because these upstream imports already initialize the same native module; that candidate was discarded.
The source checkout is on main at 47153e4. Investigate deferring optional native crypto initialization across the actual eager graph, using standard runtime APIs and preserving the same cryptographic primitives and synchronous public contracts. Do not patch installed dependencies, hide imports from the bundler with constructed strings, or replace constant-time verification with ordinary equality.
Acceptance: prove the built public entry's eager graph no longer initializes optional native crypto, measure fresh source and built entry startup/RSS, exercise cold and warm authentication/CSRF/signature/hash/request-ID paths, run router tests/lint/typechecks, and link the implementation commit and downstream adoption requirement.