A production-ready QUIC implementation in pure Go
This report summarizes scanner evidence for quic-go/quic-go, a Go project with 11,821 GitHub stars. SynthScan examined 104,765 lines of code across 485 source files, recording 84 pattern matches distributed across 4 syntactic categories. The legacy adjusted pattern signal is 0.9 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 38 finding(s).
Are imports declared and package/API names verified? 46 finding(s).
Are wrappers, guards, and repeated structures necessary? 0 finding(s).
Which changes need focused human review? 84 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 84 distinct pattern matches across 4 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | send_conn_test.go | 129 | require.NoError(t, c.Write([]byte("lorem ipsum"), 0, protocol.ECNUnsupported)) | CODE |
| LOW | send_conn_test.go | 134 | require.Equal(t, "lorem ipsum", string(b[:n])) | CODE |
| LOW | packet_unpacker_test.go | 108 | payload := []byte("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore | CODE |
| LOW | packet_unpacker_test.go | 108 | payload := []byte("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore | CODE |
| LOW | packet_unpacker_test.go | 194 | payload := []byte("Lorem ipsum dolor sit amet") | CODE |
| LOW | packet_unpacker_test.go | 194 | payload := []byte("Lorem ipsum dolor sit amet") | CODE |
| LOW⚡ | qlog/frame_test.go | 369 | ReasonPhrase: "lorem ipsum", | CODE |
| LOW⚡ | qlog/frame_test.go | 376 | "reason": "lorem ipsum" | CODE |
| LOW⚡ | qlog/frame_test.go | 383 | ReasonPhrase: "lorem ipsum", | CODE |
| LOW⚡ | qlog/frame_test.go | 390 | "reason": "lorem ipsum" | CODE |
| LOW | internal/wire/new_token_frame_test.go | 13 | token := "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore | CODE |
| LOW | internal/wire/new_token_frame_test.go | 13 | token := "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore | CODE |
| LOW | internal/wire/new_token_frame_test.go | 29 | token := "Lorem ipsum dolor sit amet, consectetur adipiscing elit" | CODE |
| LOW | internal/wire/new_token_frame_test.go | 29 | token := "Lorem ipsum dolor sit amet, consectetur adipiscing elit" | CODE |
| LOW | internal/wire/new_token_frame_test.go | 42 | token := "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore | CODE |
| LOW | internal/wire/new_token_frame_test.go | 42 | token := "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore | CODE |
| LOW⚡ | internal/wire/datagram_frame_test.go | 23 | data := []byte("Lorem ipsum dolor sit amet") | CODE |
| LOW⚡ | internal/wire/datagram_frame_test.go | 23 | data := []byte("Lorem ipsum dolor sit amet") | CODE |
| LOW⚡ | internal/wire/datagram_frame_test.go | 26 | require.Equal(t, []byte("Lorem ipsum dolor sit amet"), frame.Data) | CODE |
| LOW⚡ | internal/wire/datagram_frame_test.go | 26 | require.Equal(t, []byte("Lorem ipsum dolor sit amet"), frame.Data) | CODE |
| LOW | internal/wire/datagram_frame_test.go | 66 | f := &DatagramFrame{Data: []byte("Lorem ipsum")} | CODE |
| LOW | internal/wire/datagram_frame_test.go | 70 | expected = append(expected, []byte("Lorem ipsum")...) | CODE |
| LOW | internal/wire/extended_header_test.go | 75 | token := []byte("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et | CODE |
| LOW | internal/wire/extended_header_test.go | 75 | token := []byte("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et | CODE |
| LOW | internal/wire/frame_parser_test.go | 255 | frame: &CryptoFrame{Offset: 0x1337, Data: []byte("lorem ipsum")}, | CODE |
| LOW | internal/handshake/aead_test.go | 30 | msg := []byte("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore e | CODE |
| LOW | internal/handshake/aead_test.go | 30 | msg := []byte("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore e | CODE |
| LOW | internal/handshake/aead_test.go | 52 | msg := []byte("Lorem ipsum dolor sit amet") | CODE |
| LOW | internal/handshake/aead_test.go | 52 | msg := []byte("Lorem ipsum dolor sit amet") | CODE |
| LOW | internal/handshake/handshake_fuzz_test.go | 368 | const plaintext = "Lorem ipsum dolor sit amet, consectetur adipiscing elit." | CODE |
| LOW | internal/handshake/handshake_fuzz_test.go | 368 | const plaintext = "Lorem ipsum dolor sit amet, consectetur adipiscing elit." | CODE |
| LOW | internal/handshake/updatable_aead_test.go | 24 | msg = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore ma | CODE |
| LOW | internal/handshake/updatable_aead_test.go | 24 | msg = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore ma | CODE |
| LOW | internal/handshake/updatable_aead_test.go | 191 | msg := []byte("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore e | CODE |
| LOW | internal/handshake/updatable_aead_test.go | 191 | msg := []byte("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore e | CODE |
| LOW | internal/handshake/updatable_aead_test.go | 212 | msg := []byte("Lorem ipsum") | CODE |
| LOW⚡ | integrationtests/self/http_raw_conn_test.go | 155 | b = append(b, []byte("lorem ipsum dolor sit amet")...) | CODE |
| LOW⚡ | integrationtests/self/http_raw_conn_test.go | 155 | b = append(b, []byte("lorem ipsum dolor sit amet")...) | CODE |
| LOW⚡ | integrationtests/self/http_raw_conn_test.go | 161 | require.Equal(t, []byte("lorem ipsum dolor sit amet"), data) | CODE |
| LOW⚡ | integrationtests/self/http_raw_conn_test.go | 161 | require.Equal(t, []byte("lorem ipsum dolor sit amet"), data) | CODE |
| LOW | integrationtests/self/stateless_reset_test.go | 119 | _, serr := str.Write([]byte("Lorem ipsum dolor sit amet.")) | CODE |
| LOW | integrationtests/self/stateless_reset_test.go | 119 | _, serr := str.Write([]byte("Lorem ipsum dolor sit amet.")) | CODE |
| LOW | http3/response_writer_test.go | 116 | http.SetCookie(rw, &http.Cookie{Name: "baz", Value: "lorem ipsum"}) | CODE |
| LOW | http3/response_writer_test.go | 125 | []string{"foo=bar", `baz="lorem ipsum"`}, | CODE |
| LOW | http3/request_writer_test.go | 69 | req.AddCookie(&http.Cookie{Name: "baz", Value: "lorem ipsum"}) | CODE |
| LOW | http3/request_writer_test.go | 80 | require.Equal(t, `foo=bar; baz="lorem ipsum"`, headerFields["cookie"]) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | transport.go | 61 | // A number of optimizations will be enabled if the connection implements [OOBCapablePacketConn], | COMMENT |
| LOW | transport.go | 81 | // Use for generating new connection IDs. | COMMENT |
| LOW | transport.go | 101 | // MaxTokenAge is the maximum age of the resumption token presented during the handshake. | COMMENT |
| LOW | transport.go | 121 | // implementation of this callback (negating its return value). | COMMENT |
| LOW | server.go | 221 | func listenUDP(addr string) (*net.UDPConn, error) { | COMMENT |
| LOW | interface.go | 41 | COMMENT | |
| LOW | interface.go | 81 | // A ConnectionID is a QUIC Connection ID, as defined in RFC 9000. | COMMENT |
| LOW | interface.go | 101 | // A length of 0 can only be used when an endpoint doesn't need to multiplex connections during migration. | COMMENT |
| LOW | interface.go | 121 | // If the timeout is exceeded, the connection is closed. | COMMENT |
| LOW | interface.go | 141 | // will increase the window up to MaxConnectionReceiveWindow. | COMMENT |
| LOW | interface.go | 161 | // MaxIncomingUniStreams is the maximum number of concurrent unidirectional streams that a peer is allowed to open. | COMMENT |
| LOW | interface.go | 181 | // a "message too long" error at that size fails the handshake instead. | COMMENT |
| LOW | interface.go | 201 | type ClientInfo struct { | COMMENT |
| LOW | connection.go | 121 | blockModeCongestionLimited | COMMENT |
| LOW | connection.go | 801 | // LatestRTT is the last RTT sample observed on the active network path. | COMMENT |
| LOW | connection.go | 821 | PacketsSent uint64 | COMMENT |
| LOW | connection.go | 3001 | } | COMMENT |
| LOW | send_stream.go | 121 | } | COMMENT |
| LOW | mtu_discoverer.go | 21 | // The algorithm used here is resilient to packet loss of (maxLostMTUProbes - 1) packets. | COMMENT |
| LOW | mtu_discoverer.go | 41 | // If 1st probe packet acknowledged: | COMMENT |
| LOW | mtu_discoverer.go | 61 | // This means we'll send a packet larger than the first probe packet (which was lost). | COMMENT |
| LOW | internal/wire/transport_parameters.go | 481 | b = quicvarint.Append(b, uint64(quicvarint.Len(val))) | COMMENT |
| LOW | internal/handshake/handshake_fuzz_test.go | 101 | uint8(0), // postHandshakeTarget | COMMENT |
| LOW | internal/handshake/updatable_aead_test.go | 261 | } | COMMENT |
| LOW | internal/handshake/updatable_aead_test.go | 281 | // encrypted0 := client.Seal(nil, []byte(msg), 0x42, ad) | COMMENT |
| LOW | internal/monotime/time.go | 1 | // Package monotime provides a monotonic time representation that is useful for | COMMENT |
| LOW | internal/utils/linkedlist/linkedlist.go | 1 | // Copyright 2009 The Go Authors. All rights reserved. | COMMENT |
| LOW | internal/protocol/params.go | 61 | COMMENT | |
| LOW | internal/congestion/cubic.go | 101 | // TCP-Reno connections on a single loss event. The effective multiplier is | COMMENT |
| LOW | http3/transport.go | 81 | // Enable support for HTTP/3 datagrams (RFC 9297). | COMMENT |
| LOW | http3/server.go | 141 | // When used by [Server.ListenAndServe] and [Server.ListenAndServeTLS], if empty, | COMMENT |
| LOW | http3/server.go | 161 | COMMENT | |
| LOW | http3/server.go | 681 | } | COMMENT |
| LOW | http3/request_writer.go | 261 | if strings.HasPrefix(host, "[") && strings.HasSuffix(host, "]") { | COMMENT |
| LOW | qlogwriter/writer.go | 21 | } | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | interface.go | 185 | // This allows the sending of QUIC packets that fully utilize the available MTU of the path. | COMMENT |
| MEDIUM | connection.go | 2561 | // sends enough ACKs to allow its peer to utilize the bandwidth. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/workflows/go-generate.sh | 14 | # Check if any files were changed | COMMENT |