A pit full of rusty nails

Use unstable tokio to build LocalRuntime for nailrt

+343 -125
+12
.cargo/config.toml
··· 1 + [target.x86_64-unknown-linux-gnu] 2 + linker = "clang" 3 + rustflags = ["-C", "link-arg=-fuse-ld=mold", "--cfg", "tokio_unstable"] 4 + 5 + [profile.dev.build-override] 6 + opt-level = 1 7 + 8 + [env] 9 + RUST_LOG = "info" 10 + 11 + [build] 12 + rustflags = ["--cfg", "tokio_unstable"]
-1
.gitignore
··· 1 1 /target 2 2 /input 3 - .cargo/config.toml 4 3 /configuration
+1
.tangled/workflows/miri.yml
··· 7 7 dependencies: 8 8 nixpkgs: 9 9 - clang 10 + - mold 10 11 - rustup 11 12 12 13 steps:
+1
.tangled/workflows/test.yml
··· 7 7 dependencies: 8 8 nixpkgs: 9 9 - clang 10 + - mold 10 11 - rustup 11 12 12 13 steps:
+301 -99
Cargo.lock
··· 34 34 35 35 [[package]] 36 36 name = "anyhow" 37 - version = "1.0.101" 37 + version = "1.0.102" 38 38 source = "registry+https://github.com/rust-lang/crates.io-index" 39 - checksum = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea" 39 + checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" 40 40 41 41 [[package]] 42 42 name = "async-trait" ··· 164 164 165 165 [[package]] 166 166 name = "bitflags" 167 - version = "2.10.0" 167 + version = "2.11.0" 168 168 source = "registry+https://github.com/rust-lang/crates.io-index" 169 - checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" 169 + checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" 170 170 171 171 [[package]] 172 172 name = "bumpalo" 173 - version = "3.19.1" 173 + version = "3.20.2" 174 174 source = "registry+https://github.com/rust-lang/crates.io-index" 175 - checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" 175 + checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" 176 176 177 177 [[package]] 178 178 name = "byteorder" ··· 188 188 189 189 [[package]] 190 190 name = "cc" 191 - version = "1.2.55" 191 + version = "1.2.56" 192 192 source = "registry+https://github.com/rust-lang/crates.io-index" 193 - checksum = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29" 193 + checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" 194 194 dependencies = [ 195 195 "find-msvc-tools", 196 196 "jobserver", ··· 325 325 326 326 [[package]] 327 327 name = "foldhash" 328 + version = "0.1.5" 329 + source = "registry+https://github.com/rust-lang/crates.io-index" 330 + checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" 331 + 332 + [[package]] 333 + name = "foldhash" 328 334 version = "0.2.0" 329 335 source = "registry+https://github.com/rust-lang/crates.io-index" 330 336 checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" 331 337 332 338 [[package]] 333 339 name = "futures" 334 - version = "0.3.31" 340 + version = "0.3.32" 335 341 source = "registry+https://github.com/rust-lang/crates.io-index" 336 - checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" 342 + checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d" 337 343 dependencies = [ 338 344 "futures-channel", 339 345 "futures-core", ··· 346 352 347 353 [[package]] 348 354 name = "futures-channel" 349 - version = "0.3.31" 355 + version = "0.3.32" 350 356 source = "registry+https://github.com/rust-lang/crates.io-index" 351 - checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" 357 + checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" 352 358 dependencies = [ 353 359 "futures-core", 354 360 "futures-sink", ··· 369 375 370 376 [[package]] 371 377 name = "futures-core" 372 - version = "0.3.31" 378 + version = "0.3.32" 373 379 source = "registry+https://github.com/rust-lang/crates.io-index" 374 - checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" 380 + checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" 375 381 376 382 [[package]] 377 383 name = "futures-executor" 378 - version = "0.3.31" 384 + version = "0.3.32" 379 385 source = "registry+https://github.com/rust-lang/crates.io-index" 380 - checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" 386 + checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" 381 387 dependencies = [ 382 388 "futures-core", 383 389 "futures-task", ··· 386 392 387 393 [[package]] 388 394 name = "futures-io" 389 - version = "0.3.31" 395 + version = "0.3.32" 390 396 source = "registry+https://github.com/rust-lang/crates.io-index" 391 - checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" 397 + checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" 392 398 393 399 [[package]] 394 400 name = "futures-lite" ··· 405 411 406 412 [[package]] 407 413 name = "futures-macro" 408 - version = "0.3.31" 414 + version = "0.3.32" 409 415 source = "registry+https://github.com/rust-lang/crates.io-index" 410 - checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" 416 + checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" 411 417 dependencies = [ 412 418 "proc-macro2", 413 419 "quote", ··· 416 422 417 423 [[package]] 418 424 name = "futures-sink" 419 - version = "0.3.31" 425 + version = "0.3.32" 420 426 source = "registry+https://github.com/rust-lang/crates.io-index" 421 - checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" 427 + checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" 422 428 423 429 [[package]] 424 430 name = "futures-task" 425 - version = "0.3.31" 431 + version = "0.3.32" 426 432 source = "registry+https://github.com/rust-lang/crates.io-index" 427 - checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" 433 + checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" 428 434 429 435 [[package]] 430 436 name = "futures-util" 431 - version = "0.3.31" 437 + version = "0.3.32" 432 438 source = "registry+https://github.com/rust-lang/crates.io-index" 433 - checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 439 + checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" 434 440 dependencies = [ 435 441 "futures-channel", 436 442 "futures-core", ··· 440 446 "futures-task", 441 447 "memchr", 442 448 "pin-project-lite", 443 - "pin-utils", 444 449 "slab", 445 450 ] 446 451 ··· 457 462 ] 458 463 459 464 [[package]] 465 + name = "getrandom" 466 + version = "0.4.1" 467 + source = "registry+https://github.com/rust-lang/crates.io-index" 468 + checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" 469 + dependencies = [ 470 + "cfg-if", 471 + "libc", 472 + "r-efi", 473 + "wasip2", 474 + "wasip3", 475 + ] 476 + 477 + [[package]] 460 478 name = "gimli" 461 479 version = "0.32.3" 462 480 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 494 512 checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" 495 513 dependencies = [ 496 514 "equivalent", 515 + "foldhash 0.1.5", 497 516 ] 498 517 499 518 [[package]] ··· 504 523 dependencies = [ 505 524 "allocator-api2", 506 525 "equivalent", 507 - "foldhash", 526 + "foldhash 0.2.0", 508 527 ] 509 528 510 529 [[package]] 530 + name = "heck" 531 + version = "0.5.0" 532 + source = "registry+https://github.com/rust-lang/crates.io-index" 533 + checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 534 + 535 + [[package]] 511 536 name = "hermit-abi" 512 537 version = "0.5.2" 513 538 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 615 640 ] 616 641 617 642 [[package]] 643 + name = "id-arena" 644 + version = "2.3.0" 645 + source = "registry+https://github.com/rust-lang/crates.io-index" 646 + checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" 647 + 648 + [[package]] 618 649 name = "indenter" 619 650 version = "0.3.4" 620 651 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 628 659 dependencies = [ 629 660 "equivalent", 630 661 "hashbrown 0.16.1", 662 + "serde", 663 + "serde_core", 631 664 ] 632 665 633 666 [[package]] ··· 651 684 source = "registry+https://github.com/rust-lang/crates.io-index" 652 685 checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" 653 686 dependencies = [ 654 - "getrandom", 687 + "getrandom 0.3.4", 655 688 "libc", 656 689 ] 657 690 658 691 [[package]] 659 692 name = "js-sys" 660 - version = "0.3.85" 693 + version = "0.3.91" 661 694 source = "registry+https://github.com/rust-lang/crates.io-index" 662 - checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" 695 + checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" 663 696 dependencies = [ 664 697 "once_cell", 665 698 "wasm-bindgen", ··· 672 705 checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 673 706 674 707 [[package]] 708 + name = "leb128fmt" 709 + version = "0.1.0" 710 + source = "registry+https://github.com/rust-lang/crates.io-index" 711 + checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" 712 + 713 + [[package]] 675 714 name = "libabort" 676 715 version = "0.1.9" 677 716 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 682 721 683 722 [[package]] 684 723 name = "libc" 685 - version = "0.2.180" 724 + version = "0.2.182" 686 725 source = "registry+https://github.com/rust-lang/crates.io-index" 687 - checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" 726 + checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" 688 727 689 728 [[package]] 690 729 name = "libm" ··· 734 773 735 774 [[package]] 736 775 name = "memchr" 737 - version = "2.7.6" 776 + version = "2.8.0" 738 777 source = "registry+https://github.com/rust-lang/crates.io-index" 739 - checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" 778 + checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" 740 779 741 780 [[package]] 742 781 name = "mimalloc" ··· 808 847 "nailkov", 809 848 "nailrng", 810 849 "pin-project-lite", 811 - "rand", 850 + "rand 0.10.0", 812 851 "tokio", 813 852 "tracing", 814 853 "winnow", ··· 843 882 "itertools", 844 883 "nailrng", 845 884 "parking_lot", 846 - "rand", 885 + "rand 0.10.0", 847 886 "rand_distr", 848 887 "rapidhash", 849 888 "tracing", ··· 930 969 name = "nailrng" 931 970 version = "0.1.0" 932 971 dependencies = [ 933 - "getrandom", 934 - "rand_core", 972 + "getrandom 0.4.1", 973 + "rand_core 0.10.0", 935 974 "wyrand", 936 975 ] 937 976 ··· 1012 1051 "nailkov", 1013 1052 "nailrng", 1014 1053 "nailspicy", 1015 - "rand", 1054 + "rand 0.10.0", 1016 1055 ] 1017 1056 1018 1057 [[package]] ··· 1174 1213 "futures-util", 1175 1214 "opentelemetry", 1176 1215 "percent-encoding", 1177 - "rand", 1216 + "rand 0.9.2", 1178 1217 "thiserror", 1179 1218 "tokio", 1180 1219 "tokio-stream", ··· 1182 1221 1183 1222 [[package]] 1184 1223 name = "owo-colors" 1185 - version = "4.2.3" 1224 + version = "4.3.0" 1186 1225 source = "registry+https://github.com/rust-lang/crates.io-index" 1187 - checksum = "9c6901729fa79e91a0913333229e9ca5dc725089d1c363b2f4b4760709dc4a52" 1226 + checksum = "d211803b9b6b570f68772237e415a029d5a50c65d382910b879fb19d3271f94d" 1188 1227 1189 1228 [[package]] 1190 1229 name = "parking" ··· 1229 1268 1230 1269 [[package]] 1231 1270 name = "pin-project" 1232 - version = "1.1.10" 1271 + version = "1.1.11" 1233 1272 source = "registry+https://github.com/rust-lang/crates.io-index" 1234 - checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" 1273 + checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" 1235 1274 dependencies = [ 1236 1275 "pin-project-internal", 1237 1276 ] 1238 1277 1239 1278 [[package]] 1240 1279 name = "pin-project-internal" 1241 - version = "1.1.10" 1280 + version = "1.1.11" 1242 1281 source = "registry+https://github.com/rust-lang/crates.io-index" 1243 - checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" 1282 + checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" 1244 1283 dependencies = [ 1245 1284 "proc-macro2", 1246 1285 "quote", ··· 1249 1288 1250 1289 [[package]] 1251 1290 name = "pin-project-lite" 1252 - version = "0.2.16" 1291 + version = "0.2.17" 1253 1292 source = "registry+https://github.com/rust-lang/crates.io-index" 1254 - checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" 1293 + checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" 1255 1294 1256 1295 [[package]] 1257 1296 name = "pin-utils" ··· 1275 1314 ] 1276 1315 1277 1316 [[package]] 1317 + name = "prettyplease" 1318 + version = "0.2.37" 1319 + source = "registry+https://github.com/rust-lang/crates.io-index" 1320 + checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" 1321 + dependencies = [ 1322 + "proc-macro2", 1323 + "syn", 1324 + ] 1325 + 1326 + [[package]] 1278 1327 name = "proc-macro2" 1279 1328 version = "1.0.106" 1280 1329 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1328 1377 checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" 1329 1378 dependencies = [ 1330 1379 "rand_chacha", 1331 - "rand_core", 1380 + "rand_core 0.9.5", 1381 + ] 1382 + 1383 + [[package]] 1384 + name = "rand" 1385 + version = "0.10.0" 1386 + source = "registry+https://github.com/rust-lang/crates.io-index" 1387 + checksum = "bc266eb313df6c5c09c1c7b1fbe2510961e5bcd3add930c1e31f7ed9da0feff8" 1388 + dependencies = [ 1389 + "getrandom 0.4.1", 1390 + "rand_core 0.10.0", 1332 1391 ] 1333 1392 1334 1393 [[package]] ··· 1338 1397 checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" 1339 1398 dependencies = [ 1340 1399 "ppv-lite86", 1341 - "rand_core", 1400 + "rand_core 0.9.5", 1342 1401 ] 1343 1402 1344 1403 [[package]] ··· 1347 1406 source = "registry+https://github.com/rust-lang/crates.io-index" 1348 1407 checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" 1349 1408 dependencies = [ 1350 - "getrandom", 1409 + "getrandom 0.3.4", 1351 1410 ] 1352 1411 1353 1412 [[package]] 1413 + name = "rand_core" 1414 + version = "0.10.0" 1415 + source = "registry+https://github.com/rust-lang/crates.io-index" 1416 + checksum = "0c8d0fd677905edcbeedbf2edb6494d676f0e98d54d5cf9bda0b061cb8fb8aba" 1417 + 1418 + [[package]] 1354 1419 name = "rand_distr" 1355 - version = "0.5.1" 1420 + version = "0.6.0" 1356 1421 source = "registry+https://github.com/rust-lang/crates.io-index" 1357 - checksum = "6a8615d50dcf34fa31f7ab52692afec947c4dd0ab803cc87cb3b0b4570ff7463" 1422 + checksum = "4d431c2703ccf129de4d45253c03f49ebb22b97d6ad79ee3ecfc7e3f4862c1d8" 1358 1423 dependencies = [ 1359 1424 "num-traits", 1360 - "rand", 1425 + "rand 0.10.0", 1361 1426 ] 1362 1427 1363 1428 [[package]] 1364 1429 name = "rapidhash" 1365 - version = "4.2.2" 1430 + version = "4.4.1" 1366 1431 source = "registry+https://github.com/rust-lang/crates.io-index" 1367 - checksum = "71ec30b38a417407efe7676bad0ca6b78f995f810185ece9af3bd5dc561185a9" 1432 + checksum = "b5e48930979c155e2f33aa36ab3119b5ee81332beb6482199a8ecd6029b80b59" 1368 1433 dependencies = [ 1369 - "rand", 1434 + "rand 0.9.2", 1370 1435 "rustversion", 1371 1436 ] 1372 1437 ··· 1392 1457 1393 1458 [[package]] 1394 1459 name = "regex-syntax" 1395 - version = "0.8.9" 1460 + version = "0.8.10" 1396 1461 source = "registry+https://github.com/rust-lang/crates.io-index" 1397 - checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" 1462 + checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" 1398 1463 1399 1464 [[package]] 1400 1465 name = "rustc-demangle" ··· 1416 1481 1417 1482 [[package]] 1418 1483 name = "saa" 1419 - version = "5.4.9" 1484 + version = "5.5.0" 1420 1485 source = "registry+https://github.com/rust-lang/crates.io-index" 1421 - checksum = "da0ba8adb63e0deebd0744d8fc5bea394c08029159deaf680513fec1a3949144" 1486 + checksum = "16c7f49c9d5caa3bf4b3106900484b447b9253fe99670ceb81cb6cb5027855e1" 1422 1487 1423 1488 [[package]] 1424 1489 name = "scc" 1425 - version = "3.5.6" 1490 + version = "3.6.6" 1426 1491 source = "registry+https://github.com/rust-lang/crates.io-index" 1427 - checksum = "e4bd9d1727de391b6982925d830baad51692fa2aa6e337733c03d95121ca2793" 1492 + checksum = "6012e652611b2fdcb557a7b4be8cee00d8be19397c70011906a68aa4dac2fe37" 1428 1493 dependencies = [ 1429 1494 "saa", 1430 1495 "sdd", ··· 1438 1503 1439 1504 [[package]] 1440 1505 name = "sdd" 1441 - version = "4.6.2" 1506 + version = "4.6.5" 1442 1507 source = "registry+https://github.com/rust-lang/crates.io-index" 1443 - checksum = "c25da4ae64b24edfcb0b0d30b96b2b0dbc64ec63aefeb6ec35bfc5ef167e5c9e" 1508 + checksum = "4becc2f27bd39aafb78a8a1b4e1d6877ed0a6b5bf096722ed538dc028367a9b5" 1509 + 1510 + [[package]] 1511 + name = "semver" 1512 + version = "1.0.27" 1513 + source = "registry+https://github.com/rust-lang/crates.io-index" 1514 + checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" 1444 1515 1445 1516 [[package]] 1446 1517 name = "serde" ··· 1552 1623 1553 1624 [[package]] 1554 1625 name = "syn" 1555 - version = "2.0.114" 1626 + version = "2.0.117" 1556 1627 source = "registry+https://github.com/rust-lang/crates.io-index" 1557 - checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" 1628 + checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" 1558 1629 dependencies = [ 1559 1630 "proc-macro2", 1560 1631 "quote", ··· 1638 1709 1639 1710 [[package]] 1640 1711 name = "toml" 1641 - version = "0.9.11+spec-1.1.0" 1712 + version = "0.9.12+spec-1.1.0" 1642 1713 source = "registry+https://github.com/rust-lang/crates.io-index" 1643 - checksum = "f3afc9a848309fe1aaffaed6e1546a7a14de1f935dc9d89d32afd9a44bab7c46" 1714 + checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" 1644 1715 dependencies = [ 1645 1716 "serde_core", 1646 1717 "serde_spanned", ··· 1660 1731 1661 1732 [[package]] 1662 1733 name = "toml_parser" 1663 - version = "1.0.6+spec-1.1.0" 1734 + version = "1.0.9+spec-1.1.0" 1664 1735 source = "registry+https://github.com/rust-lang/crates.io-index" 1665 - checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" 1736 + checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4" 1666 1737 dependencies = [ 1667 1738 "winnow", 1668 1739 ] 1669 1740 1670 1741 [[package]] 1671 1742 name = "tonic" 1672 - version = "0.14.3" 1743 + version = "0.14.5" 1673 1744 source = "registry+https://github.com/rust-lang/crates.io-index" 1674 - checksum = "a286e33f82f8a1ee2df63f4fa35c0becf4a85a0cb03091a15fd7bf0b402dc94a" 1745 + checksum = "fec7c61a0695dc1887c1b53952990f3ad2e3a31453e1f49f10e75424943a93ec" 1675 1746 dependencies = [ 1676 1747 "async-trait", 1677 1748 "base64", ··· 1696 1767 1697 1768 [[package]] 1698 1769 name = "tonic-prost" 1699 - version = "0.14.3" 1770 + version = "0.14.5" 1700 1771 source = "registry+https://github.com/rust-lang/crates.io-index" 1701 - checksum = "d6c55a2d6a14174563de34409c9f92ff981d006f56da9c6ecd40d9d4a31500b0" 1772 + checksum = "a55376a0bbaa4975a3f10d009ad763d8f4108f067c7c2e74f3001fb49778d309" 1702 1773 dependencies = [ 1703 1774 "bytes", 1704 1775 "prost", ··· 1861 1932 1862 1933 [[package]] 1863 1934 name = "unicode-ident" 1864 - version = "1.0.22" 1935 + version = "1.0.24" 1865 1936 source = "registry+https://github.com/rust-lang/crates.io-index" 1866 - checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" 1937 + checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" 1867 1938 1868 1939 [[package]] 1869 1940 name = "unicode-segmentation" ··· 1872 1943 checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" 1873 1944 1874 1945 [[package]] 1946 + name = "unicode-xid" 1947 + version = "0.2.6" 1948 + source = "registry+https://github.com/rust-lang/crates.io-index" 1949 + checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" 1950 + 1951 + [[package]] 1875 1952 name = "uuid" 1876 - version = "1.20.0" 1953 + version = "1.21.0" 1877 1954 source = "registry+https://github.com/rust-lang/crates.io-index" 1878 - checksum = "ee48d38b119b0cd71fe4141b30f5ba9c7c5d9f4e7a3a8b4a674e4b6ef789976f" 1955 + checksum = "b672338555252d43fd2240c714dc444b8c6fb0a5c5335e65a07bba7742735ddb" 1879 1956 dependencies = [ 1880 - "getrandom", 1957 + "getrandom 0.4.1", 1881 1958 "js-sys", 1882 - "rand", 1959 + "rand 0.9.2", 1883 1960 "wasm-bindgen", 1884 1961 ] 1885 1962 ··· 1909 1986 version = "1.0.2+wasi-0.2.9" 1910 1987 source = "registry+https://github.com/rust-lang/crates.io-index" 1911 1988 checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" 1989 + dependencies = [ 1990 + "wit-bindgen", 1991 + ] 1992 + 1993 + [[package]] 1994 + name = "wasip3" 1995 + version = "0.4.0+wasi-0.3.0-rc-2026-01-06" 1996 + source = "registry+https://github.com/rust-lang/crates.io-index" 1997 + checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" 1912 1998 dependencies = [ 1913 1999 "wit-bindgen", 1914 2000 ] 1915 2001 1916 2002 [[package]] 1917 2003 name = "wasm-bindgen" 1918 - version = "0.2.108" 2004 + version = "0.2.114" 1919 2005 source = "registry+https://github.com/rust-lang/crates.io-index" 1920 - checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" 2006 + checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" 1921 2007 dependencies = [ 1922 2008 "cfg-if", 1923 2009 "once_cell", ··· 1928 2014 1929 2015 [[package]] 1930 2016 name = "wasm-bindgen-macro" 1931 - version = "0.2.108" 2017 + version = "0.2.114" 1932 2018 source = "registry+https://github.com/rust-lang/crates.io-index" 1933 - checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" 2019 + checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" 1934 2020 dependencies = [ 1935 2021 "quote", 1936 2022 "wasm-bindgen-macro-support", ··· 1938 2024 1939 2025 [[package]] 1940 2026 name = "wasm-bindgen-macro-support" 1941 - version = "0.2.108" 2027 + version = "0.2.114" 1942 2028 source = "registry+https://github.com/rust-lang/crates.io-index" 1943 - checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" 2029 + checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" 1944 2030 dependencies = [ 1945 2031 "bumpalo", 1946 2032 "proc-macro2", ··· 1951 2037 1952 2038 [[package]] 1953 2039 name = "wasm-bindgen-shared" 1954 - version = "0.2.108" 2040 + version = "0.2.114" 1955 2041 source = "registry+https://github.com/rust-lang/crates.io-index" 1956 - checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" 2042 + checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" 1957 2043 dependencies = [ 1958 2044 "unicode-ident", 2045 + ] 2046 + 2047 + [[package]] 2048 + name = "wasm-encoder" 2049 + version = "0.244.0" 2050 + source = "registry+https://github.com/rust-lang/crates.io-index" 2051 + checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" 2052 + dependencies = [ 2053 + "leb128fmt", 2054 + "wasmparser", 2055 + ] 2056 + 2057 + [[package]] 2058 + name = "wasm-metadata" 2059 + version = "0.244.0" 2060 + source = "registry+https://github.com/rust-lang/crates.io-index" 2061 + checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" 2062 + dependencies = [ 2063 + "anyhow", 2064 + "indexmap", 2065 + "wasm-encoder", 2066 + "wasmparser", 2067 + ] 2068 + 2069 + [[package]] 2070 + name = "wasmparser" 2071 + version = "0.244.0" 2072 + source = "registry+https://github.com/rust-lang/crates.io-index" 2073 + checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" 2074 + dependencies = [ 2075 + "bitflags", 2076 + "hashbrown 0.15.5", 2077 + "indexmap", 2078 + "semver", 1959 2079 ] 1960 2080 1961 2081 [[package]] ··· 2093 2213 version = "0.51.0" 2094 2214 source = "registry+https://github.com/rust-lang/crates.io-index" 2095 2215 checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" 2216 + dependencies = [ 2217 + "wit-bindgen-rust-macro", 2218 + ] 2219 + 2220 + [[package]] 2221 + name = "wit-bindgen-core" 2222 + version = "0.51.0" 2223 + source = "registry+https://github.com/rust-lang/crates.io-index" 2224 + checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" 2225 + dependencies = [ 2226 + "anyhow", 2227 + "heck", 2228 + "wit-parser", 2229 + ] 2230 + 2231 + [[package]] 2232 + name = "wit-bindgen-rust" 2233 + version = "0.51.0" 2234 + source = "registry+https://github.com/rust-lang/crates.io-index" 2235 + checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" 2236 + dependencies = [ 2237 + "anyhow", 2238 + "heck", 2239 + "indexmap", 2240 + "prettyplease", 2241 + "syn", 2242 + "wasm-metadata", 2243 + "wit-bindgen-core", 2244 + "wit-component", 2245 + ] 2246 + 2247 + [[package]] 2248 + name = "wit-bindgen-rust-macro" 2249 + version = "0.51.0" 2250 + source = "registry+https://github.com/rust-lang/crates.io-index" 2251 + checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" 2252 + dependencies = [ 2253 + "anyhow", 2254 + "prettyplease", 2255 + "proc-macro2", 2256 + "quote", 2257 + "syn", 2258 + "wit-bindgen-core", 2259 + "wit-bindgen-rust", 2260 + ] 2261 + 2262 + [[package]] 2263 + name = "wit-component" 2264 + version = "0.244.0" 2265 + source = "registry+https://github.com/rust-lang/crates.io-index" 2266 + checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" 2267 + dependencies = [ 2268 + "anyhow", 2269 + "bitflags", 2270 + "indexmap", 2271 + "log", 2272 + "serde", 2273 + "serde_derive", 2274 + "serde_json", 2275 + "wasm-encoder", 2276 + "wasm-metadata", 2277 + "wasmparser", 2278 + "wit-parser", 2279 + ] 2280 + 2281 + [[package]] 2282 + name = "wit-parser" 2283 + version = "0.244.0" 2284 + source = "registry+https://github.com/rust-lang/crates.io-index" 2285 + checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" 2286 + dependencies = [ 2287 + "anyhow", 2288 + "id-arena", 2289 + "indexmap", 2290 + "log", 2291 + "semver", 2292 + "serde", 2293 + "serde_derive", 2294 + "serde_json", 2295 + "unicode-xid", 2296 + "wasmparser", 2297 + ] 2096 2298 2097 2299 [[package]] 2098 2300 name = "wyrand" 2099 - version = "0.3.2" 2301 + version = "0.4.1" 2100 2302 source = "registry+https://github.com/rust-lang/crates.io-index" 2101 - checksum = "15e0359b0b8d9cdef235a1fd4a8c5d02e4c9204e9fac861c14c229a8e803d1a6" 2303 + checksum = "b5484c3d24f0e2e117d30bce6f8792e193be33e2b6e0b3f8945ccf265c56c6da" 2102 2304 dependencies = [ 2103 - "rand_core", 2305 + "rand_core 0.10.0", 2104 2306 ] 2105 2307 2106 2308 [[package]] 2107 2309 name = "zerocopy" 2108 - version = "0.8.39" 2310 + version = "0.8.40" 2109 2311 source = "registry+https://github.com/rust-lang/crates.io-index" 2110 - checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" 2312 + checksum = "a789c6e490b576db9f7e6b6d661bcc9799f7c0ac8352f56ea20193b2681532e5" 2111 2313 dependencies = [ 2112 2314 "zerocopy-derive", 2113 2315 ] 2114 2316 2115 2317 [[package]] 2116 2318 name = "zerocopy-derive" 2117 - version = "0.8.39" 2319 + version = "0.8.40" 2118 2320 source = "registry+https://github.com/rust-lang/crates.io-index" 2119 - checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" 2321 + checksum = "f65c489a7071a749c849713807783f70672b28094011623e200cb86dcb835953" 2120 2322 dependencies = [ 2121 2323 "proc-macro2", 2122 2324 "quote", ··· 2125 2327 2126 2328 [[package]] 2127 2329 name = "zmij" 2128 - version = "1.0.19" 2330 + version = "1.0.21" 2129 2331 source = "registry+https://github.com/rust-lang/crates.io-index" 2130 - checksum = "3ff05f8caa9038894637571ae6b9e29466c1f4f829d26c9b28f869a29cbe3445" 2332 + checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" 2131 2333 2132 2334 [[package]] 2133 2335 name = "zstd"
+4 -4
Cargo.toml
··· 24 24 hyper = { version = "1.6.0", default-features = false, features = ["server"] } 25 25 color-eyre = { version = "0.6.3", default-features = false } 26 26 serde = { version = "1.0.219", features = ["derive"] } 27 - rand_core = "0.9.3" 28 - rand = { version = "0.9", default-features = false } 29 - rand_distr = { version = "0.5.1" } 30 - wyrand = { version = "0.3.2" } 27 + rand_core = "0.10" 28 + rand = { version = "0.10", default-features = false } 29 + rand_distr = { version = "0.6" } 30 + wyrand = { version = "0.4" } 31 31 hashbrown = { version = "0.15.2", default-features = false, features = [ 32 32 "equivalent", 33 33 "inline-more",
+1 -1
crates/nailgen/src/delay.rs
··· 3 3 4 4 use nailconfig::NailConfig; 5 5 use nailrng::FastRng; 6 - use rand::Rng; 6 + use rand::RngExt; 7 7 use tokio::time::{Sleep, sleep}; 8 8 9 9 use crate::boxed_future_within;
+5 -5
crates/nailgen/src/html_gen.rs
··· 5 5 use nailconfig::NailConfig; 6 6 use nailkov::NailKov; 7 7 use nailrng::FastRng; 8 - use rand::{Rng, RngCore, distr::Alphanumeric, seq::IndexedRandom}; 8 + use rand::{RngExt, Rng, distr::Alphanumeric, seq::IndexedRandom}; 9 9 10 10 /// Provides either the minimum configured size, or a randomised value between 11 11 /// the minimum and maximum configured sizes if a maximum is available. 12 12 #[inline] 13 - fn get_desired_size(config: &NailConfig, rng: &mut impl RngCore) -> usize { 13 + fn get_desired_size(config: &NailConfig, rng: &mut impl Rng) -> usize { 14 14 match ( 15 15 config.generator.min_paragraph_size, 16 16 config.generator.max_paragraph_size, ··· 26 26 pub fn text_generator<'a>( 27 27 chain: &'a NailKov, 28 28 size: usize, 29 - rng: &'a mut impl RngCore, 29 + rng: &'a mut impl Rng, 30 30 ) -> impl Iterator<Item = &'a u8> + 'a { 31 31 chain 32 32 .generate_tokens(rng) ··· 169 169 fn paragraph<'a>( 170 170 chain: &'a NailKov, 171 171 size: usize, 172 - rng: &'a mut impl RngCore, 172 + rng: &'a mut impl Rng, 173 173 ) -> impl Iterator<Item = &'a u8> + 'a { 174 174 b"<p>" 175 175 .iter() ··· 181 181 fn header<'a>( 182 182 chain: &'a NailKov, 183 183 size: usize, 184 - rng: &'a mut impl RngCore, 184 + rng: &'a mut impl Rng, 185 185 ) -> impl Iterator<Item = &'a u8> + 'a { 186 186 b"\n<h2>" 187 187 .iter()
+4 -4
crates/nailkov/src/lib.rs
··· 13 13 use estr::IdentityHasher; 14 14 use indexmap::IndexMap; 15 15 use itertools::Itertools; 16 - use rand::{RngCore, seq::IteratorRandom}; 16 + use rand::{Rng, seq::IteratorRandom}; 17 17 use rand_distr::Distribution; 18 18 19 19 use distribution::{TokenWeights, TokenWeightsBuilder}; ··· 29 29 chain: CachePadded<IndexMap<TokenPair, TokenWeights, TokenHasher>>, 30 30 } 31 31 32 - pub struct NailKovIter<'a, R: RngCore> { 32 + pub struct NailKovIter<'a, R: Rng> { 33 33 rng: &'a mut R, 34 34 markov: &'a NailKov, 35 35 prev: TokenPair, 36 36 } 37 37 38 - impl<R: RngCore> Iterator for NailKovIter<'_, R> { 38 + impl<R: Rng> Iterator for NailKovIter<'_, R> { 39 39 type Item = Token; 40 40 41 41 #[inline] ··· 52 52 53 53 impl NailKov { 54 54 #[inline] 55 - pub fn generate_tokens<'a, R: RngCore>(&'a self, rng: &'a mut R) -> NailKovIter<'a, R> { 55 + pub fn generate_tokens<'a, R: Rng>(&'a self, rng: &'a mut R) -> NailKovIter<'a, R> { 56 56 NailKovIter { 57 57 // A markov chain that was successfully built is never empty, so 58 58 // it will always return with a value, making unwrapping it safe to do.
+1 -1
crates/nailrng/Cargo.toml
··· 9 9 10 10 [dependencies] 11 11 rand_core.workspace = true 12 - getrandom = { version = "0.3.2", features = ["std"] } 12 + getrandom = { version = "0.4", features = ["std"] } 13 13 wyrand.workspace = true
+11 -8
crates/nailrng/src/lib.rs
··· 1 1 //! A very fast, user-space RNG source in the same vein as `rand`'s `ThreadRng`. Not cryptographically secure, 2 2 //! is meant to be a very fast entropy source. 3 3 4 + use core::convert::Infallible; 4 5 use std::cell::UnsafeCell; 5 6 6 - use rand_core::RngCore; 7 + use rand_core::{Rng, TryRng}; 7 8 use wyrand::WyRand; 8 9 9 10 thread_local! { ··· 34 35 } 35 36 } 36 37 37 - impl RngCore for FastRng { 38 + impl TryRng for FastRng { 39 + type Error = Infallible; 40 + 38 41 #[inline(always)] 39 - fn next_u32(&mut self) -> u32 { 40 - self.0.next_u32() 42 + fn try_next_u32(&mut self) -> Result<u32, Self::Error> { 43 + self.0.try_next_u32() 41 44 } 42 45 43 46 #[inline(always)] 44 - fn next_u64(&mut self) -> u64 { 45 - self.0.next_u64() 47 + fn try_next_u64(&mut self) -> Result<u64, Self::Error> { 48 + self.0.try_next_u64() 46 49 } 47 50 48 51 #[inline(always)] 49 - fn fill_bytes(&mut self, dst: &mut [u8]) { 50 - self.0.fill_bytes(dst); 52 + fn try_fill_bytes(&mut self, dst: &mut [u8]) -> Result<(), Infallible> { 53 + self.0.try_fill_bytes(dst) 51 54 } 52 55 }
+2 -2
crates/nailrt/src/lib.rs
··· 51 51 // Main worker MUST start, else we just error out. 52 52 let rt = tokio::runtime::Builder::new_current_thread() 53 53 .enable_all() 54 - .build()?; 54 + .build_local(Default::default())?; 55 55 56 56 std::thread::scope(|s| { 57 57 for num in 1..workers.get() { ··· 76 76 77 77 match tokio::runtime::Builder::new_current_thread() 78 78 .enable_all() 79 - .build() 79 + .build_local(Default::default()) 80 80 { 81 81 Ok(rt) => { 82 82 rt.block_on(worker_task(