Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
969426c
WIP: rewrite uSockets core in Rust (bun_usockets) — core crate + cons…
Jarred-Sumner Jul 12, 2026
8afe56d
note bindings dedupe task
Jarred-Sumner Jul 12, 2026
f2153e5
WIP: generate bssl-sys bindings at build time instead of committing p…
Jarred-Sumner Jul 12, 2026
31de3b3
WIP: delete C uSockets core and orphaned uws crates; runtime fully on…
Jarred-Sumner Jul 12, 2026
362271c
WIP: wave C green — full suite triage, syscall-fault test fixes
Jarred-Sumner Jul 12, 2026
bc538a0
WIP: Phase D core integrated — safe Protocol trait, size-class slab +…
Jarred-Sumner Jul 12, 2026
bd53641
WIP: Phase D consumer wave green — socket-lifecycle unsafe eliminated…
Jarred-Sumner Jul 12, 2026
440b7f7
record D2 adjudications
Jarred-Sumner Jul 12, 2026
ba0797d
WIP: const link-time dispatch tables, zero OnceLock/dyn in socket core
Jarred-Sumner Jul 12, 2026
c7beeb0
Rewrite uSockets core in Rust (bun_usockets)
Jarred-Sumner Jul 12, 2026
6458437
Implement the Windows winsock layer for bun_usockets
Jarred-Sumner Jul 12, 2026
f2c43af
Commit per-target bssl-sys bindings; regenerate via script instead of…
Jarred-Sumner Jul 12, 2026
1e9af71
Merge main
Jarred-Sumner Jul 12, 2026
aae3238
[autofix.ci] apply automated fixes
autofix-ci[bot] Jul 12, 2026
0ebb637
[autofix.ci] apply automated fixes (attempt 2/3)
autofix-ci[bot] Jul 12, 2026
bef5ff3
[autofix.ci] apply automated fixes (attempt 3/3)
autofix-ci[bot] Jul 12, 2026
7fa426e
fix MSG_PUSH_IMMEDIATE value (0x20, not 0x8/MSG_WAITALL)
Jarred-Sumner Jul 12, 2026
76786b4
[autofix.ci] apply automated fixes
autofix-ci[bot] Jul 12, 2026
a635dc6
[autofix.ci] apply automated fixes (attempt 2/3)
autofix-ci[bot] Jul 12, 2026
39e9610
[autofix.ci] apply automated fixes (attempt 3/3)
autofix-ci[bot] Jul 12, 2026
d0b8e1a
Register slab chunks as LSAN root regions
Jarred-Sumner Jul 12, 2026
34bc78b
[autofix.ci] apply automated fixes
autofix-ci[bot] Jul 12, 2026
6a44c29
[autofix.ci] apply automated fixes (attempt 2/3)
autofix-ci[bot] Jul 12, 2026
2db9e78
[autofix.ci] apply automated fixes (attempt 3/3)
autofix-ci[bot] Jul 12, 2026
a91ffd3
Fix CI test-lane failures: unix errno contract, TSFN post-worker rele…
Jarred-Sumner Jul 12, 2026
8dc8a56
[autofix.ci] apply automated fixes
autofix-ci[bot] Jul 12, 2026
92d331d
[autofix.ci] apply automated fixes (attempt 2/3)
autofix-ci[bot] Jul 12, 2026
0a297a2
[autofix.ci] apply automated fixes (attempt 3/3)
autofix-ci[bot] Jul 12, 2026
8dd10b9
ci: retrigger
robobun Jul 12, 2026
027d513
[autofix.ci] apply automated fixes
autofix-ci[bot] Jul 12, 2026
3bfaf56
[autofix.ci] apply automated fixes (attempt 2/3)
autofix-ci[bot] Jul 12, 2026
873c33a
[autofix.ci] apply automated fixes (attempt 3/3)
autofix-ci[bot] Jul 12, 2026
f3dcf31
Address review comments
Jarred-Sumner Jul 12, 2026
9920e0e
ci: retrigger
robobun Jul 12, 2026
29b3121
ci: retrigger
robobun Jul 12, 2026
73af3d0
Fix sync-CLI HTTP response leak, crash-report misattribution, SNI lis…
Jarred-Sumner Jul 12, 2026
b16e5fd
[autofix.ci] apply automated fixes
autofix-ci[bot] Jul 12, 2026
93d9e15
add bun_usockets to the default miri crate set
Jarred-Sumner Jul 12, 2026
78b5142
Fix 34 verified findings from a deep review pass
Jarred-Sumner Jul 13, 2026
ab20e85
Merge origin/main into claude/usockets-rust-rewrite
robobun Jul 13, 2026
0c66675
ci: retrigger
robobun Jul 13, 2026
42d0066
ci: retrigger
robobun Jul 13, 2026
c72b792
Extract BoringSSL bindings into a bun_bssl crate; mark generated file…
Jarred-Sumner Jul 13, 2026
ee37e3a
Fix findings from a maximum-depth review pass
Jarred-Sumner Jul 13, 2026
b061f12
update dead-code escape inventory for the two platform-split allows
Jarred-Sumner Jul 13, 2026
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
5 changes: 5 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,11 @@ src/jsc/bindings/headers.h linguist-generated
packages/bun-uws/fuzzing/seed-corpus/**/* linguist-generated
test/expected-durations.json linguist-generated

# Committed bindgen output for the vendored bssl-sys crate (see
# src/bssl/bindings/README.md and regenerate.sh there).
src/bssl/bindings/wrapper_*.rs linguist-generated
src/bssl/bindings/wrapper.c linguist-generated

src/jsc/bindings/sqlite/sqlite3.c linguist-vendored
src/jsc/bindings/sqlite/sqlite3_local.h linguist-vendored
src/simdutf_sys/bun-simdutf.cpp linguist-vendored
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -216,3 +216,4 @@ src/jsc/bindings/GeneratedBindings.zig
# Web Streams rewrite working notes (design docs, spec transcription, review logs).
# Kept locally for the ongoing work; not part of the source tree.
/specs/
.rewrite-specs/
8 changes: 8 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,11 @@ docs/bundler/minifier.mdx
# `_`/`*` differently every pass), so autofix.ci ping-pongs commits forever.
# Not authored by hand; no value in normalizing it.
docs/.rust-rewrite-verified-claims.md

# committed bindgen outputs (regenerated by regenerate.sh), not hand-authored
src/bssl/bindings

# prettier has no fixed point on this file (it flips the indentation of one
# nested list item back and forth every pass), so autofix.ci ping-pongs
# commits forever. Same class as docs/.rust-rewrite-verified-claims.md above.
src/usockets/docs/semantics.md
79 changes: 45 additions & 34 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 10 additions & 9 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -76,18 +76,19 @@
"src/mimalloc_sys",
"src/semver_jsc",
"src/standalone_graph",
"src/uws",
"src/wyhash",
"src/hash",
"src/boringssl_sys",
"src/bssl",
"src/bun_core",
"src/bun_core_macros",
"src/bun_output_tags",
"src/patch_jsc",
"src/router",
"src/shell_parser",
"src/tcc_sys",
"src/uws_sys",
"src/usockets",

Check warning on line 90 in Cargo.toml

View check run for this annotation

Claude / Claude Code Review

src/usockets/Cargo.toml references gitignored .rewrite-specs/ working notes

🟡 Companion to still-open #19 (`src/bssl/bindings/README.md` → `.rewrite-specs/tls-semantics.md`): three more gitignored working-notes references at `src/usockets/Cargo.toml` — line 26 `(protocol.rs; safe-protocol.md)`, line 28 `(consumers/04)`, line 31 `(tls-semantics.md Part 2d)`. None exist in-tree (`src/usockets/docs/` has only `cabi.md`/`design.md`/`semantics.md`/`tls.md`; `.rewrite-specs/` is gitignored by this PR at `.gitignore:219`), and two of the three (`safe-protocol.md`, `consumers/0
Comment thread
claude[bot] marked this conversation as resolved.
Comment thread
claude[bot] marked this conversation as resolved.
Comment thread
claude[bot] marked this conversation as resolved.
Comment thread
claude[bot] marked this conversation as resolved.
Comment thread
claude[bot] marked this conversation as resolved.
Comment thread
claude[bot] marked this conversation as resolved.
Comment thread
claude[bot] marked this conversation as resolved.
Comment thread
claude[bot] marked this conversation as resolved.
Comment thread
claude[bot] marked this conversation as resolved.
Comment thread
claude[bot] marked this conversation as resolved.
Comment thread
claude[bot] marked this conversation as resolved.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 🟡 Three more stale references to files this PR deletes, in files the earlier grep-and-update passes missed because two of them are outside the diff: src/platform/linux.rs:13-14 ("The C caller in epoll_kqueue.c decodes errno from the return value" — epoll_kqueue.c is deleted; the caller is now src/usockets/unsafe_core/poll_access.rs), src/js/internal-for-testing.ts:280 ("The syscalls instrumented in bsd.c" — bsd.c is deleted; fault injection is now src/usockets/fault.rs), and src/usockets/kind.rs:2 ("identical to src/uws_sys/SocketKind.rs" — that file is deleted here). Same class as the already-fixed lib.rs/cabi.rs/README.md rounds; no runtime effect. (Filed against Cargo.toml because platform/linux.rs and internal-for-testing.ts have no diff line ranges.)

Extended reasoning...

What the issue is

Three doc comments describe a live relationship with files this PR deletes:

  1. src/platform/linux.rs:13-14 — the doc comment on raw_syscall6 (which backs sys_epoll_pwait2) reads: "The C caller in epoll_kqueue.c decodes errno from the return value (ret == -EINTR, ret != -ENOSYS), so the in-band encoding is what it expects." This PR deletes packages/bun-usockets/src/eventing/epoll_kqueue.c; the sole remaining caller is src/usockets/unsafe_core/poll_access.rs. The comment describes a caller contract for a caller that no longer exists.

  2. src/js/internal-for-testing.ts:280 — the JSDoc on SocketFaultSyscall reads: "The syscalls instrumented in bsd.c". This PR deletes packages/bun-usockets/src/bsd.c and fault_inject.c; fault injection now lives in src/usockets/fault.rs.

  3. src/usockets/kind.rs:2 — reads: "Discriminants FROZEN — identical to src/uws_sys/SocketKind.rs". ls src/uws_sys/ shows only _libusockets.h, libuwsockets.cpp, libuwsockets_h3.cppSocketKind.rs is deleted by this same PR.

Why the earlier passes missed them

This is the same finding class as the previously-accepted-and-fixed nits on this PR: #4 (lib.rs:12-14 + cabi.rs:12-16 → SocketKind.rs / "live C"), #8 (README.md → epoll_kqueue.c), and #13 (lib.rs:40 → "feature-gated OFF"). Those fix passes covered files the PR touches. The first two files here — src/platform/linux.rs and src/js/internal-for-testing.ts — are not in the PR's changed-files list, so a grep-and-update sweep over the diff would not find them. The third (kind.rs) is a new file added by this PR whose module doc references a file deleted in the same PR.

Impact

No runtime effect — pure doc staleness, hence nit. The platform/linux.rs one is the most misleading of the three: it documents an errno-in-band caller contract ("the C caller decodes errno from the return value") for a caller that no longer exists, so a reader trying to understand why the function returns raw -errno instead of setting thread-local errno would look for epoll_kqueue.c and find nothing. Per CLAUDE.md "Comments carry only durable non-obvious content" and "grep the whole repo including cfg-gated code" when a change invalidates surrounding docs.

Step-by-step proof

  1. sed -n '13,14p' src/platform/linux.rs"The C caller in epoll_kqueue.c decodes errno from the return value (ret == -EINTR, ret != -ENOSYS)".
  2. ls packages/bun-usockets/src/eventing/ → No such file or directory. This PR deletes epoll_kqueue.c.
  3. rg sys_epoll_pwait2 src/usockets/unsafe_core/poll_access.rs — the new (and only) caller.
  4. sed -n '280p' src/js/internal-for-testing.ts"The syscalls instrumented in bsd.c".
  5. ls packages/bun-usockets/src/bsd.c → No such file or directory. This PR deletes it; fault injection is now src/usockets/fault.rs.
  6. sed -n '2p' src/usockets/kind.rs"identical to src/uws_sys/SocketKind.rs".
  7. ls src/uws_sys/_libusockets.h libuwsockets.cpp libuwsockets_h3.cpp. No SocketKind.rs — deleted by this PR.
  8. Neither src/platform/linux.rs nor src/js/internal-for-testing.ts appears in this PR's changed-files list — hence why the earlier fix passes over touched files missed them.

How to fix

  • linux.rs:13-14: replace "The C caller in epoll_kqueue.c" with "The caller in src/usockets/unsafe_core/poll_access.rs" (or just "The caller"), keeping the errno-in-band contract description.
  • internal-for-testing.ts:280: replace "instrumented in bsd.c" with "instrumented in src/usockets/fault.rs".
  • kind.rs:2: drop "identical to src/uws_sys/SocketKind.rs" — the docs/cabi.md §3.8 reference on the same line already covers the freeze contract, and SocketKind.rs no longer exists to be identical to.

(Filed against Cargo.toml because platform/linux.rs and internal-for-testing.ts have no diff line ranges in this PR.)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 The doc comments at src/usockets/tls/sni.rs:164 ("Exact-pattern lookup") and src/usockets/unsafe_core/ffi.rs:714 ("exact-pattern SNI lookup") are wrong — find_ctx()lookup()get() falls back to * children (sni.rs:107), which is wildcard-aware and matches the deleted C (sni_findgetUser). The unresolved CodeRabbit comment at sni.rs:161 suggests the opposite fix (change the impl to exact-match), but that would regress App.h onMissingServerName — which passes the concrete negotiated hostname after user JS may have registered *.example.com, and needs the wildcard match. Fix the two doc comments; do not apply the CodeRabbit suggestion. (Filed against Cargo.toml because the new sni.rs file has no commentable diff line ranges.)

Extended reasoning...

What the issue is

Two doc comments describe find_ctx() as an exact-pattern lookup, but the implementation is (correctly) wildcard-aware:

  • src/usockets/tls/sni.rs:164: /// Exact-pattern lookup; returns an OWNED reference (caller unrefs)
  • src/usockets/unsafe_core/ffi.rs:714: /// `us_listen_socket_find_server_name_ctx`: exact-pattern SNI lookup

But find_ctx() (sni.rs:166) calls self.lookup() (sni.rs:158), which calls get() (sni.rs:98–108), and get() falls back to the * child at sni.rs:107 (get(node.children.get(&b"*"[..])?, rest)) — the same wildcard-aware traversal that resolve() (sni.rs:184, correctly documented as "Wildcard-aware") uses. So the two doc comments contradict the implementation.

Why the implementation is correct (C-parity)

The deleted C function this ports is us_listen_socket_find_server_name_ctx (openssl.c:2506–2513), which called sni_find. From the deleted sni_tree.cpp in this PR's diff, sni_find called getUser(root, 0, labels, numLabels), and getUser (sni_tree.cpp:92–116) has explicit wildcard fallback:

/* Try and match by wildcard */
it = root->children.find("*");
if (it == root->children.end()) {
    return nullptr;
}
return getUser(it->second.get(), label + 1, labels, numLabels);

So the Rust impl exactly matches the deleted C — the doc comments are what's wrong.

Why the CodeRabbit suggestion should NOT be applied

There is an unresolved CodeRabbit inline comment at sni.rs:161 (dated 2026-07-12T23:45:03Z) suggesting the opposite fix: "Update the lookup in find_ctx to use the exact-match traversal rather than get(), so querying a concrete hostname does not resolve wildcard children."

Applying that would be a regression. The sole caller of us_listen_socket_find_server_name_ctx is App.h:325 inside onMissingServerName:

static struct ssl_ctx_st *onMissingServerName(..., const char *hostname, ...) {
    ...
    /* The handler is expected to have registered the name via addServerName();
     * hand the newly-registered context back so the in-flight handshake uses it */
    return us_listen_socket_find_server_name_ctx(ls, hostname);
}

Here hostname is the concrete negotiated servername from the ClientHello (e.g. foo.example.com). The user's missingServerName handler may have just called addServerName("*.example.com", ...). With wildcard matching (current behavior, C-parity), find_server_name_ctx(ls, "foo.example.com") returns the newly-registered *.example.com context and the in-flight handshake uses it. With CodeRabbit's exact-match fix, it would return null and the handshake would fall back to the default context — breaking the wildcard-registration flow that the C supported.

Impact

No runtime effect — the implementation is correct today; only the two doc comments are wrong. Hence nit. But the finding's real value is flagging that the still-open CodeRabbit suggestion is backwards: applying it (which the "🤖 Prompt for AI Agents" block invites) would silently regress a user-visible flow that the deleted C supported and that has no test coverage in this PR.

Step-by-step proof

  1. sni.rs:164: doc says "Exact-pattern lookup".
  2. sni.rs:166–167: find_ctx() calls self.lookup(pattern).
  3. sni.rs:158–162: lookup() calls get(&self.root, &buf[..n]).
  4. sni.rs:107: get() falls back to node.children.get(&b"*"[..])wildcard-aware, not exact.
  5. sni.rs:181–185: resolve() uses the SAME lookup() and is correctly documented "Wildcard-aware".
  6. Deleted sni_tree.cpp in the diff: sni_findgetUser, which does root->children.find("*") fallback — the C was wildcard-aware.
  7. App.h:313–325: onMissingServerName calls us_listen_socket_find_server_name_ctx(ls, hostname) with the concrete negotiated hostname; the comment at 320–323 says the handler registered a name via addServerName() — which accepts wildcard patterns. Wildcard matching is required for a *.example.com registration to satisfy a foo.example.com request.
  8. Therefore: implementation is C-parity correct; the two doc comments are misleading; the CodeRabbit suggestion at sni.rs:161 would regress from the deleted C's behavior.

How to fix

  • sni.rs:164: change to /// Wildcard-aware lookup (same traversal as resolve); returns an OWNED reference (caller unrefs) — docs/cabi.md §1.6.
  • ffi.rs:714: drop "exact-pattern" — e.g. /// `us_listen_socket_find_server_name_ctx`: wildcard-aware SNI lookup
  • Do not apply the CodeRabbit "exact-match traversal" suggestion at sni.rs:161.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 🟡 Companion to still-open #19 (src/bssl/bindings/README.md.rewrite-specs/tls-semantics.md): three more gitignored working-notes references at src/usockets/Cargo.toml — line 26 (protocol.rs; safe-protocol.md), line 28 (consumers/04), line 31 (tls-semantics.md Part 2d). None exist in-tree (src/usockets/docs/ has only cabi.md/design.md/semantics.md/tls.md; .rewrite-specs/ is gitignored by this PR at .gitignore:219), and two of the three (safe-protocol.md, consumers/04) are NOT caught by #19's suggested rewrite-specs|tls-semantics grep. Same class as #4/#8/#13/#16/#17/#19/#21; no runtime effect. Fix: drop the three parentheticals — the sentences read fine without them. (Filed against workspace Cargo.toml because the new src/usockets/Cargo.toml file has no commentable diff line ranges.)

Extended reasoning...

What the issue is

src/usockets/Cargo.toml is a new file added by this PR. Three of its dependency comments cite working-notes files that do not exist in the committed tree:

  • Line 26: # Protocol v2 owner refcounting (protocol.rs; safe-protocol.md).safe-protocol.md does not exist. src/usockets/docs/ contains only cabi.md, design.md, semantics.md, tls.md (verified via ls).
  • Line 28: # Platform-split addrinfo type shared with the DNS bridge (consumers/04). — no consumers/ directory exists anywhere in src/usockets/ or the repo root.
  • Line 31: # Raw BoringSSL bindings (tls-semantics.md Part 2d): re-export of the vendoredtls-semantics.md does not exist in-tree; it lives in .rewrite-specs/, which this same PR adds to .gitignore at line 219.

All three are references into the author's local .rewrite-specs/ working-notes directory, which the PR itself gitignores (below the existing /specs/ entry commented "Kept locally for the ongoing work; not part of the source tree"). No reader — reviewer or future maintainer — will ever have those files.

Relationship to still-open comment #19

Comment #19 (still unresolved, filed at src/bssl/bindings/README.md:6) covers the same "gitignored working notes" pattern class at a different filesrc/bssl/bindings/README.md lines 6 and 41, both citing tls-semantics.md. This finding is a companion at a distinct location (src/usockets/Cargo.toml), and critically: two of the three references here would NOT be caught by #19's suggested grep pattern. #19 recommends rg 'rewrite-specs|tls-semantics' src/ packages/; that catches line 31 but misses safe-protocol.md (line 26) and consumers/04 (line 28). So a fix pass addressing #19 would leave lines 26 and 28 stale.

Verified: rg 'safe-protocol|consumers/0[0-9]|tls-semantics' src/ packages/ hits only src/usockets/Cargo.toml (3 lines) and src/bssl/bindings/README.md (2 lines, covered by #19).

Why nothing prevents it

These are # TOML comments — nothing enforces them. This is the same "development-history narration in committed docs" class the PR has already accepted and fixed ~7 rounds of (#4 lib.rs/cabi.rs, #8 event_loop/README.md, #13 lib.rs:40, #16 deleted C filenames, #17 deleted Rust crate names, #19 gitignored .rewrite-specs, #21 removed struct fields), all of which the author has fixed or acknowledged. The bar this PR's review has established is clear: dangling references to nonexistent/gitignored files in committed docs are worth flagging as nits.

Impact

No runtime effect — pure comment staleness, hence nit. The concrete downside: a reader trying to understand why bun_ptr / bun_dns / bun_bssl are dependencies of the new socket crate is pointed at three files they cannot find. Per CLAUDE.md "Comments carry only durable non-obvious content: … no bug history — that belongs in the PR description". The crate's own docs/ directory (design.md, cabi.md) already carries the durable references; the parentheticals add nothing a checked-out reader can follow.

Step-by-step proof

  1. sed -n '26p' src/usockets/Cargo.toml# Protocol v2 owner refcounting (protocol.rs; safe-protocol.md).
  2. ls src/usockets/docs/cabi.md design.md semantics.md tls.md. No safe-protocol.md anywhere in the crate or repo.
  3. sed -n '28p' src/usockets/Cargo.toml# Platform-split addrinfo type shared with the DNS bridge (consumers/04).
  4. ls src/usockets/consumers/ → No such file or directory. find . -name '04*' -path '*consumers*' → nothing.
  5. sed -n '31p' src/usockets/Cargo.toml# Raw BoringSSL bindings (tls-semantics.md Part 2d): re-export of the vendored
  6. ls .rewrite-specs/ → No such file or directory. This PR's .gitignore:219 adds .rewrite-specs/.
  7. test #19's grep pattern rewrite-specs|tls-semantics matches line 31 but NOT lines 26 or 28 — so this is not a duplicate; fixing test #19 alone leaves two of the three references stale.

How to fix

Drop the three parentheticals — the sentences read fine without them:

  • Line 26: # Protocol v2 owner refcounting (protocol.rs).
  • Line 28: # Platform-split addrinfo type shared with the DNS bridge.
  • Line 31: # Raw BoringSSL bindings: re-export of the vendored

The protocol.rs reference on line 26 is fine to keep (that file exists at src/usockets/protocol.rs); only the ; safe-protocol.md suffix is dead.

(Filed against workspace Cargo.toml:90 because the new src/usockets/Cargo.toml file has no commentable diff line ranges — same convention every other new-file finding on this PR has used.)

"src/uws_shim",
"src/zstd",
"src/options_types",
"src/output",
Expand Down Expand Up @@ -181,11 +182,10 @@
# back to "warn" (their priority 0 beats the group's -1) where a warning level
# is intentional.
warnings = { level = "deny", priority = -1 }
# `bun_asan` / `bun_debug` / `socket_fault_injection` are set via RUSTFLAGS
# (`--cfg=...` + `--check-cfg=cfg(...)`) by scripts/build/rust.ts; register
# them here so a plain `cargo build` / `cargo check` (without those flags)
# doesn't warn.
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(bun_asan)', 'cfg(bun_debug)', 'cfg(socket_fault_injection)'] }
# `bun_asan` / `bun_debug` are set via RUSTFLAGS (`--cfg=...` +
# `--check-cfg=cfg(...)`) by scripts/build/rust.ts; register them here so a
# plain `cargo build` / `cargo check` (without those flags) doesn't warn.
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(bun_asan)', 'cfg(bun_debug)'] }
# link.exe unconditionally prints "Creating library X.dll.lib and object
# X.dll.exp" to stdout when linking each proc-macro DLL on Windows hosts;
# there is no linker flag to suppress it. The lint already exempts itself
Expand Down Expand Up @@ -423,10 +423,10 @@
bun_mimalloc_sys = { path = "src/mimalloc_sys" }
bun_semver_jsc = { path = "src/semver_jsc" }
bun_standalone_graph = { path = "src/standalone_graph" }
bun_uws = { path = "src/uws" }
bun_wyhash = { path = "src/wyhash" }
bun_hash = { path = "src/hash" }
bun_boringssl_sys = { path = "src/boringssl_sys" }
bun_bssl = { path = "src/bssl" }
bun_core = { path = "src/bun_core" }
bun_core_macros = { path = "src/bun_core_macros" }
bun_output_tags = { path = "src/bun_output_tags" }
Expand All @@ -436,7 +436,8 @@
bun_spawn = { path = "src/spawn" }
bun_spawn_sys = { path = "src/spawn_sys" }
bun_tcc_sys = { path = "src/tcc_sys" }
bun_uws_sys = { path = "src/uws_sys" }
bun_usockets = { path = "src/usockets" }
bun_uws_shim = { path = "src/uws_shim" }
bun_zstd = { path = "src/zstd" }
bun_options_types = { path = "src/options_types" }
bun_bunfig = { path = "src/bunfig" }
Expand Down
Loading
Loading