2 views
cloudflare/quiche
🥧 Savoury implementation of the QUIC transport protocol and HTTP/3
Rust★ 12,408+32 that day#5 on trending
E34.6/100
Duplication31
14.5% in rust, c, c-header, bash, javascript, perlDead coden/a
JavaScript, TypeScript and Python are under 5% of the codeComplexity39
69.4% The score is jscpd's own --health model: markup, data and text left out, tests kept. The numbers below are the trending scan's.
14.32%duplicated code · 19,322 of 134,890 lines
1,547clones in code
207code files of 315 scanned
15.28%duplicated over all files · 1,752 clones
Most complex files
- quiche/src/lib.rs1087 cx
- quiche/src/h3/mod.rs605 cx
- quiche/src/tests.rs386 cx
- quiche/src/frame.rs360 cx
- quiche/src/ffi.rs285 cx
- quiche/src/packet.rs242 cx
- qlog-dancer/src/datastore.rs220 cx
- quiche/src/tls/mod.rs214 cx
- quiche/src/stream/mod.rs210 cx
- quiche/src/h3/stream.rs201 cx
Dead code 100% unused · 1 findings
- qlog-dancer/qlog-dancer-ui.jsunused-file
The code number leaves out tests, fixtures, docs, examples, data files, styles, translations and vendored code.
Largest clones in the code
- 112 lines in 2 placesrust3,605 tokens
1539let mut pkt = [ 1540 0xc0, 0x00, 0x00, 0x00, 0x01, 0x08, 0x83, 0x94, 0xc8, 0xf0, 0x3e, 1541 0x51, 0x57, 0x08, 0x00, 0x00, 0x44, 0x9e, 0x7b, 0x9a, 0xec, 0x34, 1542 0xd1, 0xb1, 0xc9, 0x8d, 0xd7, 0x68, 0x9f, 0xb8, 0xec, 0x11, 0xd2, 1543 0x42, 0xb1, 0x23, 0xdc, 0x9b, 0xd8, 0xba, 0xb9, 0x36, 0xb4, 0x7d, 1544 0x92, 0xec, 0x35, 0x6c, 0x0b, 0xab, 0x7d, 0xf5, 0x97, 0x6d, 0x27, 1545 0xcd, 0x44, 0x9f, 0x63, 0x30, 0x00, 0x99, 0xf3, 0x99, 0x1c, 0x26, 1546 0x0e, 0xc4, 0xc6, 0x0d, 0x17, 0xb3, 0x1f, 0x84, 0x29, 0x15, 0x7b, 1547 0xb3, 0x5a, 0x12, 0x82, 0xa6, 0x43, 0xa8, 0xd2, 0x26, 0x2c, 0xad, 1548 0x67, 0x50, 0x0c, 0xad, 0xb8, 0xe7, 0x37, 0x8c, 0x8e, 0xb7, 0x53,First 10 of 112 lines.
- 84 lines in 2 placesrust2,749 tokens
18300x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 18310x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 18320x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 18330x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 18340x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 18350x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 18360x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 18370x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 18380x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 18390x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,First 10 of 84 lines.
- 15 lines in 21 placesrust94 tokensquiche/src/tests.rs:1263–1277quiche/src/tests.rs:6875–6889quiche/src/tests.rs:6950–6964quiche/src/tests.rs:7135–7149quiche/src/tests.rs:10097–10111and 16 more
1263fn stream_send_on_32bit_arch( 1264 #[values("cubic", "bbr2_gcongestion")] cc_algorithm_name: &str, 1265) { 1266 let mut config = Config::new(PROTOCOL_VERSION).unwrap(); 1267 assert_eq!(config.set_cc_algorithm_name(cc_algorithm_name), Ok(())); 1268 config 1269 .load_cert_chain_from_pem_file("examples/cert.crt") 1270 .unwrap(); 1271 config 1272 .load_priv_key_from_pem_file("examples/cert.key")First 10 of 15 lines.
7 more
- 7 lines in 25 placesrust62 tokens
- 9 lines in 17 placesrust62 tokens
- 8 lines in 14 placesrust75 tokens
- 29 lines in 2 placesrust771 tokens
- 7 lines in 10 placesrust79 tokens
- 137 lines in 2 placesrust699 tokens
- 24 lines in 4 placesrust225 tokens
Largest clones over all files, tests and data included
- 112 lines in 2 placesrust3,605 tokens
1539let mut pkt = [ 1540 0xc0, 0x00, 0x00, 0x00, 0x01, 0x08, 0x83, 0x94, 0xc8, 0xf0, 0x3e, 1541 0x51, 0x57, 0x08, 0x00, 0x00, 0x44, 0x9e, 0x7b, 0x9a, 0xec, 0x34, 1542 0xd1, 0xb1, 0xc9, 0x8d, 0xd7, 0x68, 0x9f, 0xb8, 0xec, 0x11, 0xd2, 1543 0x42, 0xb1, 0x23, 0xdc, 0x9b, 0xd8, 0xba, 0xb9, 0x36, 0xb4, 0x7d, 1544 0x92, 0xec, 0x35, 0x6c, 0x0b, 0xab, 0x7d, 0xf5, 0x97, 0x6d, 0x27, 1545 0xcd, 0x44, 0x9f, 0x63, 0x30, 0x00, 0x99, 0xf3, 0x99, 0x1c, 0x26, 1546 0x0e, 0xc4, 0xc6, 0x0d, 0x17, 0xb3, 0x1f, 0x84, 0x29, 0x15, 0x7b, 1547 0xb3, 0x5a, 0x12, 0x82, 0xa6, 0x43, 0xa8, 0xd2, 0x26, 0x2c, 0xad, 1548 0x67, 0x50, 0x0c, 0xad, 0xb8, 0xe7, 0x37, 0x8c, 0x8e, 0xb7, 0x53,First 10 of 112 lines.
- 84 lines in 2 placesrust2,749 tokens
18300x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 18310x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 18320x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 18330x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 18340x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 18350x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 18360x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 18370x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 18380x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 18390x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,First 10 of 84 lines.
- 15 lines in 21 placesrust94 tokensquiche/src/tests.rs:1263–1277quiche/src/tests.rs:6875–6889quiche/src/tests.rs:6950–6964quiche/src/tests.rs:7135–7149quiche/src/tests.rs:10097–10111and 16 more
1263fn stream_send_on_32bit_arch( 1264 #[values("cubic", "bbr2_gcongestion")] cc_algorithm_name: &str, 1265) { 1266 let mut config = Config::new(PROTOCOL_VERSION).unwrap(); 1267 assert_eq!(config.set_cc_algorithm_name(cc_algorithm_name), Ok(())); 1268 config 1269 .load_cert_chain_from_pem_file("examples/cert.crt") 1270 .unwrap(); 1271 config 1272 .load_priv_key_from_pem_file("examples/cert.key")First 10 of 15 lines.
- 7 lines in 25 placesrust62 tokens
- 9 lines in 17 placesrust62 tokens
By format, code only
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| rust | 191 | 131,611 | 1,546 | 19,313 | 14.67% |
| javascript | 1 | 747 | 1 | 9 | 1.2% |
| c-header | 1 | 1,297 | 0 | 0 | 0% |
| bash | 13 | 1,061 | 0 | 0 | 0% |
| perl | 1 | 174 | 0 | 0 | 0% |
By format, all files
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| rust | 227 | 140,566 | 1,709 | 21,838 | 15.54% |
| c | 4 | 1,959 | 30 | 1,041 | 53.14% |
| yaml | 8 | 837 | 11 | 124 | 14.81% |
| markdown | 23 | 2,559 | 1 | 7 | 0.27% |
| javascript | 1 | 747 | 1 | 9 | 1.2% |
| c-header | 1 | 1,297 | 0 | 0 | 0% |
| bash | 18 | 1,142 | 0 | 0 | 0% |
| toml | 16 | 814 | 0 | 0 | 0% |
| text | 14 | 253 | 0 | 0 | 0% |
| markup | 1 | 207 | 0 | 0 | 0% |
Trending appearances
| Day | Rank | Stars | Files | Lines | Clones | All files | Code | Health | Commit |
|---|---|---|---|---|---|---|---|---|---|
| Sep 22, 2026 | #5 | 12,408 (+32) | 315 | 150,689 | 1,752 | 15.28% | 14.32% | E 34.6 | cdf6105 |
| Sep 20, 2026 | #7 | 12,074 (+31) | 315 | 150,688 | 1,752 | 15.28% | 14.32% | E 34.6 | 4d23d85 |
Want this for your own project? Install jscpd and run jscpd ., or measure it the way the baselines were measured.