alamin655 commited on
Commit
8fc1b06
2 Parent(s): 91e9c89 07ea0b0

Merge branch 'rolling' into check

Browse files
.gitpod.yml ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ image: ubuntu:latest
3
+ # Commands that will run on workspace start
4
+ tasks:
5
+ - name: Setup, Install & Build
6
+ - before: apt install cargo redis-server nodejs npm && cargo test
7
+ - init: cargo install cargo-watch
8
+ - command: redis-server --port 8080 & cargo watch -q -w "." -x "run"
9
+ # Ports to expose on workspace startup
10
+ ports:
11
+ - name: Website
12
+ description: Website Preview
13
+ port: 8080
14
+ onOpen: open-browser
15
+ # vscode IDE setup
16
+ vscode:
17
+ extensions:
18
+ - vadimcn.vscode-lldb
19
+ - rust-lang.rust-analyzer
20
+ - bungcip.better-toml
21
+ - serayuzgur.crates
22
+ - usernamehw.errorlens
23
+ - DavidAnson.vscode-markdownlint
24
+ - esbenp.prettier-vscode
25
+ - stylelint.vscode-stylelint
26
+ - dbaeumer.vscode-eslint
27
+ - evgeniypeshkov.syntax-highlighter
28
+ - redhat.vscode-yaml
29
+ - ms-azuretools.vscode-docker
30
+ - GitHub.vscode-github-actions
31
+ - Catppuccin.catppuccin-vsc
32
+ - PKief.material-icon-theme
33
+ - tal7aouy.rainbow-bracket
34
+ - oderwat.indent-rainbow
35
+ - formulahendry.auto-rename-tag
36
+ - eamodio.gitlens
37
+ github:
38
+ prebuilds:
39
+ master: true
40
+ branches: true
41
+ pullRequests: true
42
+ pullRequestsFromForks: true
43
+ addCheck: true
44
+ addComment: false
45
+ addBadge: true
CONTRIBUTING.md CHANGED
@@ -14,7 +14,7 @@ Know how to fix or improve a github action?. Consider Submitting a Pull request
14
 
15
  ## Source Code
16
 
17
- You should know atleast one of the things below to start contributing:
18
 
19
  - Rust basics
20
  - Actix-web crate basics
 
14
 
15
  ## Source Code
16
 
17
+ You should know at least one of the things below to start contributing:
18
 
19
  - Rust basics
20
  - Actix-web crate basics
Cargo.lock CHANGED
@@ -8,13 +8,13 @@ version = "0.5.1"
8
  source = "registry+https://github.com/rust-lang/crates.io-index"
9
  checksum = "617a8268e3537fe1d8c9ead925fca49ef6400927ee7bc26750e90ecee14ce4b8"
10
  dependencies = [
11
- "bitflags",
12
  "bytes 1.4.0",
13
  "futures-core",
14
  "futures-sink",
15
  "memchr",
16
  "pin-project-lite",
17
- "tokio 1.28.2",
18
  "tokio-util",
19
  "tracing",
20
  ]
@@ -30,7 +30,7 @@ dependencies = [
30
  "actix-utils",
31
  "actix-web",
32
  "askama_escape",
33
- "bitflags",
34
  "bytes 1.4.0",
35
  "derive_more",
36
  "futures-core",
@@ -54,7 +54,7 @@ dependencies = [
54
  "actix-utils",
55
  "ahash 0.8.3",
56
  "base64 0.21.2",
57
- "bitflags",
58
  "brotli",
59
  "bytes 1.4.0",
60
  "bytestring",
@@ -62,7 +62,7 @@ dependencies = [
62
  "encoding_rs",
63
  "flate2",
64
  "futures-core",
65
- "h2 0.3.19",
66
  "http 0.2.9",
67
  "httparse",
68
  "httpdate",
@@ -75,7 +75,7 @@ dependencies = [
75
  "rand 0.8.5",
76
  "sha1",
77
  "smallvec 1.10.0",
78
- "tokio 1.28.2",
79
  "tokio-util",
80
  "tracing",
81
  "zstd",
@@ -87,7 +87,7 @@ version = "0.2.3"
87
  source = "registry+https://github.com/rust-lang/crates.io-index"
88
  checksum = "465a6172cf69b960917811022d8f29bc0b7fa1398bc4f78b3c466673db1213b6"
89
  dependencies = [
90
- "quote 1.0.28",
91
  "syn 1.0.109",
92
  ]
93
 
@@ -111,7 +111,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
111
  checksum = "15265b6b8e2347670eb363c47fc8c75208b4a4994b27192f345fcbe707804f3e"
112
  dependencies = [
113
  "futures-core",
114
- "tokio 1.28.2",
115
  ]
116
 
117
  [[package]]
@@ -128,7 +128,7 @@ dependencies = [
128
  "mio 0.8.8",
129
  "num_cpus",
130
  "socket2",
131
- "tokio 1.28.2",
132
  "tracing",
133
  ]
134
 
@@ -201,16 +201,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
201
  checksum = "2262160a7ae29e3415554a3f1fc04c764b1540c116aa524683208078b7a75bc9"
202
  dependencies = [
203
  "actix-router",
204
- "proc-macro2 1.0.60",
205
- "quote 1.0.28",
206
  "syn 1.0.109",
207
  ]
208
 
209
  [[package]]
210
  name = "addr2line"
211
- version = "0.19.0"
212
  source = "registry+https://github.com/rust-lang/crates.io-index"
213
- checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97"
214
  dependencies = [
215
  "gimli",
216
  ]
@@ -227,7 +227,7 @@ version = "0.7.6"
227
  source = "registry+https://github.com/rust-lang/crates.io-index"
228
  checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
229
  dependencies = [
230
- "getrandom 0.2.10",
231
  "once_cell",
232
  "version_check",
233
  ]
@@ -239,7 +239,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
239
  checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
240
  dependencies = [
241
  "cfg-if 1.0.0",
242
- "getrandom 0.2.10",
243
  "once_cell",
244
  "version_check",
245
  ]
@@ -268,6 +268,18 @@ dependencies = [
268
  "alloc-no-stdlib",
269
  ]
270
 
 
 
 
 
 
 
 
 
 
 
 
 
271
  [[package]]
272
  name = "anyhow"
273
  version = "1.0.71"
@@ -297,15 +309,15 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
297
 
298
  [[package]]
299
  name = "backtrace"
300
- version = "0.3.67"
301
  source = "registry+https://github.com/rust-lang/crates.io-index"
302
- checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca"
303
  dependencies = [
304
  "addr2line",
305
  "cc",
306
  "cfg-if 1.0.0",
307
  "libc",
308
- "miniz_oxide 0.6.2",
309
  "object",
310
  "rustc-demangle",
311
  ]
@@ -346,6 +358,12 @@ version = "1.3.2"
346
  source = "registry+https://github.com/rust-lang/crates.io-index"
347
  checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
348
 
 
 
 
 
 
 
349
  [[package]]
350
  name = "block-buffer"
351
  version = "0.10.4"
@@ -423,6 +441,12 @@ dependencies = [
423
  "bytes 1.4.0",
424
  ]
425
 
 
 
 
 
 
 
426
  [[package]]
427
  name = "cc"
428
  version = "1.0.79"
@@ -453,13 +477,65 @@ dependencies = [
453
  "envmnt",
454
  ]
455
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
456
  [[package]]
457
  name = "cloudabi"
458
  version = "0.0.3"
459
  source = "registry+https://github.com/rust-lang/crates.io-index"
460
  checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
461
  dependencies = [
462
- "bitflags",
463
  ]
464
 
465
  [[package]]
@@ -551,17 +627,74 @@ dependencies = [
551
  "cfg-if 1.0.0",
552
  ]
553
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
554
  [[package]]
555
  name = "crossbeam-deque"
556
  version = "0.7.4"
557
  source = "registry+https://github.com/rust-lang/crates.io-index"
558
  checksum = "c20ff29ded3204c5106278a81a38f4b482636ed4fa1e6cfbeef193291beb29ed"
559
  dependencies = [
560
- "crossbeam-epoch",
561
- "crossbeam-utils",
562
  "maybe-uninit",
563
  ]
564
 
 
 
 
 
 
 
 
 
 
 
 
565
  [[package]]
566
  name = "crossbeam-epoch"
567
  version = "0.8.2"
@@ -570,10 +703,23 @@ checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
570
  dependencies = [
571
  "autocfg 1.1.0",
572
  "cfg-if 0.1.10",
573
- "crossbeam-utils",
574
  "lazy_static",
575
  "maybe-uninit",
576
- "memoffset",
 
 
 
 
 
 
 
 
 
 
 
 
 
577
  "scopeguard",
578
  ]
579
 
@@ -584,7 +730,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
584
  checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
585
  dependencies = [
586
  "cfg-if 0.1.10",
587
- "crossbeam-utils",
588
  "maybe-uninit",
589
  ]
590
 
@@ -599,6 +745,15 @@ dependencies = [
599
  "lazy_static",
600
  ]
601
 
 
 
 
 
 
 
 
 
 
602
  [[package]]
603
  name = "crypto-common"
604
  version = "0.1.6"
@@ -611,19 +766,15 @@ dependencies = [
611
 
612
  [[package]]
613
  name = "cssparser"
614
- version = "0.29.6"
615
  source = "registry+https://github.com/rust-lang/crates.io-index"
616
- checksum = "f93d03419cb5950ccfd3daf3ff1c7a36ace64609a1a8746d493df1ca0afde0fa"
617
  dependencies = [
618
  "cssparser-macros",
619
  "dtoa-short",
620
  "itoa 1.0.6",
621
- "matches",
622
- "phf 0.10.1",
623
- "proc-macro2 1.0.60",
624
- "quote 1.0.28",
625
  "smallvec 1.10.0",
626
- "syn 1.0.109",
627
  ]
628
 
629
  [[package]]
@@ -632,8 +783,8 @@ version = "0.6.1"
632
  source = "registry+https://github.com/rust-lang/crates.io-index"
633
  checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
634
  dependencies = [
635
- "quote 1.0.28",
636
- "syn 2.0.18",
637
  ]
638
 
639
  [[package]]
@@ -643,8 +794,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
643
  checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
644
  dependencies = [
645
  "convert_case",
646
- "proc-macro2 1.0.60",
647
- "quote 1.0.28",
648
  "rustc_version 0.4.0",
649
  "syn 1.0.109",
650
  ]
@@ -771,8 +922,8 @@ version = "0.1.8"
771
  source = "registry+https://github.com/rust-lang/crates.io-index"
772
  checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
773
  dependencies = [
774
- "proc-macro2 1.0.60",
775
- "quote 1.0.28",
776
  "syn 1.0.109",
777
  "synstructure",
778
  ]
@@ -804,7 +955,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
804
  checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743"
805
  dependencies = [
806
  "crc32fast",
807
- "miniz_oxide 0.7.1",
808
  ]
809
 
810
  [[package]]
@@ -855,7 +1006,7 @@ version = "0.3.3"
855
  source = "registry+https://github.com/rust-lang/crates.io-index"
856
  checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
857
  dependencies = [
858
- "bitflags",
859
  "fuchsia-zircon-sys",
860
  ]
861
 
@@ -958,17 +1109,6 @@ dependencies = [
958
  "unicode-width",
959
  ]
960
 
961
- [[package]]
962
- name = "getrandom"
963
- version = "0.1.16"
964
- source = "registry+https://github.com/rust-lang/crates.io-index"
965
- checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
966
- dependencies = [
967
- "cfg-if 1.0.0",
968
- "libc",
969
- "wasi 0.9.0+wasi-snapshot-preview1",
970
- ]
971
-
972
  [[package]]
973
  name = "getrandom"
974
  version = "0.2.10"
@@ -1006,9 +1146,9 @@ dependencies = [
1006
 
1007
  [[package]]
1008
  name = "h2"
1009
- version = "0.3.19"
1010
  source = "registry+https://github.com/rust-lang/crates.io-index"
1011
- checksum = "d357c7ae988e7d2182f7d7871d0b963962420b0678b0997ce7de72001aeab782"
1012
  dependencies = [
1013
  "bytes 1.4.0",
1014
  "fnv",
@@ -1018,11 +1158,17 @@ dependencies = [
1018
  "http 0.2.9",
1019
  "indexmap",
1020
  "slab",
1021
- "tokio 1.28.2",
1022
  "tokio-util",
1023
  "tracing",
1024
  ]
1025
 
 
 
 
 
 
 
1026
  [[package]]
1027
  name = "handlebars"
1028
  version = "4.3.7"
@@ -1044,15 +1190,6 @@ version = "0.12.3"
1044
  source = "registry+https://github.com/rust-lang/crates.io-index"
1045
  checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
1046
 
1047
- [[package]]
1048
- name = "hermit-abi"
1049
- version = "0.2.6"
1050
- source = "registry+https://github.com/rust-lang/crates.io-index"
1051
- checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
1052
- dependencies = [
1053
- "libc",
1054
- ]
1055
-
1056
  [[package]]
1057
  name = "hermit-abi"
1058
  version = "0.3.1"
@@ -1082,8 +1219,8 @@ dependencies = [
1082
  "log",
1083
  "mac",
1084
  "markup5ever 0.11.0",
1085
- "proc-macro2 1.0.60",
1086
- "quote 1.0.28",
1087
  "syn 1.0.109",
1088
  ]
1089
 
@@ -1188,15 +1325,15 @@ dependencies = [
1188
 
1189
  [[package]]
1190
  name = "hyper"
1191
- version = "0.14.26"
1192
  source = "registry+https://github.com/rust-lang/crates.io-index"
1193
- checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4"
1194
  dependencies = [
1195
  "bytes 1.4.0",
1196
  "futures-channel",
1197
  "futures-core",
1198
  "futures-util",
1199
- "h2 0.3.19",
1200
  "http 0.2.9",
1201
  "http-body 0.4.5",
1202
  "httparse",
@@ -1204,7 +1341,7 @@ dependencies = [
1204
  "itoa 1.0.6",
1205
  "pin-project-lite",
1206
  "socket2",
1207
- "tokio 1.28.2",
1208
  "tower-service",
1209
  "tracing",
1210
  "want 0.3.1",
@@ -1230,9 +1367,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1230
  checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
1231
  dependencies = [
1232
  "bytes 1.4.0",
1233
- "hyper 0.14.26",
1234
  "native-tls",
1235
- "tokio 1.28.2",
1236
  "tokio-native-tls",
1237
  ]
1238
 
@@ -1293,7 +1430,7 @@ version = "1.0.11"
1293
  source = "registry+https://github.com/rust-lang/crates.io-index"
1294
  checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
1295
  dependencies = [
1296
- "hermit-abi 0.3.1",
1297
  "libc",
1298
  "windows-sys 0.48.0",
1299
  ]
@@ -1309,22 +1446,30 @@ dependencies = [
1309
 
1310
  [[package]]
1311
  name = "ipnet"
1312
- version = "2.7.2"
1313
  source = "registry+https://github.com/rust-lang/crates.io-index"
1314
- checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f"
1315
 
1316
  [[package]]
1317
  name = "is-terminal"
1318
- version = "0.4.7"
1319
  source = "registry+https://github.com/rust-lang/crates.io-index"
1320
- checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f"
1321
  dependencies = [
1322
- "hermit-abi 0.3.1",
1323
- "io-lifetimes",
1324
- "rustix",
1325
  "windows-sys 0.48.0",
1326
  ]
1327
 
 
 
 
 
 
 
 
 
 
1328
  [[package]]
1329
  name = "itoa"
1330
  version = "0.4.8"
@@ -1379,9 +1524,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
1379
 
1380
  [[package]]
1381
  name = "libc"
1382
- version = "0.2.146"
1383
  source = "registry+https://github.com/rust-lang/crates.io-index"
1384
- checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
1385
 
1386
  [[package]]
1387
  name = "linux-raw-sys"
@@ -1389,6 +1534,12 @@ version = "0.3.8"
1389
  source = "registry+https://github.com/rust-lang/crates.io-index"
1390
  checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
1391
 
 
 
 
 
 
 
1392
  [[package]]
1393
  name = "local-channel"
1394
  version = "0.1.3"
@@ -1502,6 +1653,15 @@ dependencies = [
1502
  "autocfg 1.1.0",
1503
  ]
1504
 
 
 
 
 
 
 
 
 
 
1505
  [[package]]
1506
  name = "mime"
1507
  version = "0.3.17"
@@ -1518,15 +1678,6 @@ dependencies = [
1518
  "unicase",
1519
  ]
1520
 
1521
- [[package]]
1522
- name = "miniz_oxide"
1523
- version = "0.6.2"
1524
- source = "registry+https://github.com/rust-lang/crates.io-index"
1525
- checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa"
1526
- dependencies = [
1527
- "adler",
1528
- ]
1529
-
1530
  [[package]]
1531
  name = "miniz_oxide"
1532
  version = "0.7.1"
@@ -1620,12 +1771,6 @@ version = "0.5.0"
1620
  source = "registry+https://github.com/rust-lang/crates.io-index"
1621
  checksum = "ab250442c86f1850815b5d268639dff018c0627022bc1940eb2d642ca1ce12f0"
1622
 
1623
- [[package]]
1624
- name = "nodrop"
1625
- version = "0.1.14"
1626
- source = "registry+https://github.com/rust-lang/crates.io-index"
1627
- checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
1628
-
1629
  [[package]]
1630
  name = "num-traits"
1631
  version = "0.2.15"
@@ -1637,19 +1782,19 @@ dependencies = [
1637
 
1638
  [[package]]
1639
  name = "num_cpus"
1640
- version = "1.15.0"
1641
  source = "registry+https://github.com/rust-lang/crates.io-index"
1642
- checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
1643
  dependencies = [
1644
- "hermit-abi 0.2.6",
1645
  "libc",
1646
  ]
1647
 
1648
  [[package]]
1649
  name = "object"
1650
- version = "0.30.4"
1651
  source = "registry+https://github.com/rust-lang/crates.io-index"
1652
- checksum = "03b4680b86d9cfafba8fc491dc9b6df26b68cf40e9e6cd73909194759a63c385"
1653
  dependencies = [
1654
  "memchr",
1655
  ]
@@ -1660,13 +1805,19 @@ version = "1.18.0"
1660
  source = "registry+https://github.com/rust-lang/crates.io-index"
1661
  checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
1662
 
 
 
 
 
 
 
1663
  [[package]]
1664
  name = "openssl"
1665
- version = "0.10.54"
1666
  source = "registry+https://github.com/rust-lang/crates.io-index"
1667
- checksum = "69b3f656a17a6cbc115b5c7a40c616947d213ba182135b014d6051b73ab6f019"
1668
  dependencies = [
1669
- "bitflags",
1670
  "cfg-if 1.0.0",
1671
  "foreign-types",
1672
  "libc",
@@ -1681,9 +1832,9 @@ version = "0.1.1"
1681
  source = "registry+https://github.com/rust-lang/crates.io-index"
1682
  checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
1683
  dependencies = [
1684
- "proc-macro2 1.0.60",
1685
- "quote 1.0.28",
1686
- "syn 2.0.18",
1687
  ]
1688
 
1689
  [[package]]
@@ -1694,9 +1845,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
1694
 
1695
  [[package]]
1696
  name = "openssl-sys"
1697
- version = "0.9.88"
1698
  source = "registry+https://github.com/rust-lang/crates.io-index"
1699
- checksum = "c2ce0f250f34a308dcfdbb351f511359857d4ed2134ba715a4eadd46e1ffd617"
1700
  dependencies = [
1701
  "cc",
1702
  "libc",
@@ -1773,9 +1924,9 @@ checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
1773
 
1774
  [[package]]
1775
  name = "pest"
1776
- version = "2.6.1"
1777
  source = "registry+https://github.com/rust-lang/crates.io-index"
1778
- checksum = "16833386b02953ca926d19f64af613b9bf742c48dcd5e09b32fbfc9740bf84e2"
1779
  dependencies = [
1780
  "thiserror",
1781
  "ucd-trie",
@@ -1783,9 +1934,9 @@ dependencies = [
1783
 
1784
  [[package]]
1785
  name = "pest_derive"
1786
- version = "2.6.1"
1787
  source = "registry+https://github.com/rust-lang/crates.io-index"
1788
- checksum = "7763190f9406839f99e5197afee8c9e759969f7dbfa40ad3b8dbee8757b745b5"
1789
  dependencies = [
1790
  "pest",
1791
  "pest_generator",
@@ -1793,22 +1944,22 @@ dependencies = [
1793
 
1794
  [[package]]
1795
  name = "pest_generator"
1796
- version = "2.6.1"
1797
  source = "registry+https://github.com/rust-lang/crates.io-index"
1798
- checksum = "249061b22e99973da1f5f5f1410284419e283bb60b79255bf5f42a94b66a2e00"
1799
  dependencies = [
1800
  "pest",
1801
  "pest_meta",
1802
- "proc-macro2 1.0.60",
1803
- "quote 1.0.28",
1804
- "syn 2.0.18",
1805
  ]
1806
 
1807
  [[package]]
1808
  name = "pest_meta"
1809
- version = "2.6.1"
1810
  source = "registry+https://github.com/rust-lang/crates.io-index"
1811
- checksum = "457c310cfc9cf3f22bc58901cc7f0d3410ac5d6298e432a4f9a6138565cb6df6"
1812
  dependencies = [
1813
  "once_cell",
1814
  "pest",
@@ -1826,22 +1977,21 @@ dependencies = [
1826
 
1827
  [[package]]
1828
  name = "phf"
1829
- version = "0.8.0"
1830
  source = "registry+https://github.com/rust-lang/crates.io-index"
1831
- checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
1832
  dependencies = [
1833
- "phf_shared 0.8.0",
1834
  ]
1835
 
1836
  [[package]]
1837
  name = "phf"
1838
- version = "0.10.1"
1839
  source = "registry+https://github.com/rust-lang/crates.io-index"
1840
- checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
1841
  dependencies = [
1842
  "phf_macros",
1843
- "phf_shared 0.10.0",
1844
- "proc-macro-hack",
1845
  ]
1846
 
1847
  [[package]]
@@ -1854,16 +2004,6 @@ dependencies = [
1854
  "phf_shared 0.7.24",
1855
  ]
1856
 
1857
- [[package]]
1858
- name = "phf_codegen"
1859
- version = "0.8.0"
1860
- source = "registry+https://github.com/rust-lang/crates.io-index"
1861
- checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815"
1862
- dependencies = [
1863
- "phf_generator 0.8.0",
1864
- "phf_shared 0.8.0",
1865
- ]
1866
-
1867
  [[package]]
1868
  name = "phf_codegen"
1869
  version = "0.10.0"
@@ -1886,36 +2026,35 @@ dependencies = [
1886
 
1887
  [[package]]
1888
  name = "phf_generator"
1889
- version = "0.8.0"
1890
  source = "registry+https://github.com/rust-lang/crates.io-index"
1891
- checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526"
1892
  dependencies = [
1893
- "phf_shared 0.8.0",
1894
- "rand 0.7.3",
1895
  ]
1896
 
1897
  [[package]]
1898
  name = "phf_generator"
1899
- version = "0.10.0"
1900
  source = "registry+https://github.com/rust-lang/crates.io-index"
1901
- checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
1902
  dependencies = [
1903
- "phf_shared 0.10.0",
1904
  "rand 0.8.5",
1905
  ]
1906
 
1907
  [[package]]
1908
  name = "phf_macros"
1909
- version = "0.10.0"
1910
  source = "registry+https://github.com/rust-lang/crates.io-index"
1911
- checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0"
1912
  dependencies = [
1913
- "phf_generator 0.10.0",
1914
- "phf_shared 0.10.0",
1915
- "proc-macro-hack",
1916
- "proc-macro2 1.0.60",
1917
- "quote 1.0.28",
1918
- "syn 1.0.109",
1919
  ]
1920
 
1921
  [[package]]
@@ -1929,18 +2068,18 @@ dependencies = [
1929
 
1930
  [[package]]
1931
  name = "phf_shared"
1932
- version = "0.8.0"
1933
  source = "registry+https://github.com/rust-lang/crates.io-index"
1934
- checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7"
1935
  dependencies = [
1936
  "siphasher 0.3.10",
1937
  ]
1938
 
1939
  [[package]]
1940
  name = "phf_shared"
1941
- version = "0.10.0"
1942
  source = "registry+https://github.com/rust-lang/crates.io-index"
1943
- checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
1944
  dependencies = [
1945
  "siphasher 0.3.10",
1946
  ]
@@ -1963,6 +2102,34 @@ version = "0.3.27"
1963
  source = "registry+https://github.com/rust-lang/crates.io-index"
1964
  checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
1965
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1966
  [[package]]
1967
  name = "ppv-lite86"
1968
  version = "0.2.17"
@@ -1975,12 +2142,6 @@ version = "0.1.1"
1975
  source = "registry+https://github.com/rust-lang/crates.io-index"
1976
  checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
1977
 
1978
- [[package]]
1979
- name = "proc-macro-hack"
1980
- version = "0.5.20+deprecated"
1981
- source = "registry+https://github.com/rust-lang/crates.io-index"
1982
- checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
1983
-
1984
  [[package]]
1985
  name = "proc-macro2"
1986
  version = "0.4.30"
@@ -1992,9 +2153,9 @@ dependencies = [
1992
 
1993
  [[package]]
1994
  name = "proc-macro2"
1995
- version = "1.0.60"
1996
  source = "registry+https://github.com/rust-lang/crates.io-index"
1997
- checksum = "dec2b086b7a862cf4de201096214fa870344cf922b2b30c167badb3af3195406"
1998
  dependencies = [
1999
  "unicode-ident",
2000
  ]
@@ -2020,11 +2181,11 @@ dependencies = [
2020
 
2021
  [[package]]
2022
  name = "quote"
2023
- version = "1.0.28"
2024
  source = "registry+https://github.com/rust-lang/crates.io-index"
2025
- checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488"
2026
  dependencies = [
2027
- "proc-macro2 1.0.60",
2028
  ]
2029
 
2030
  [[package]]
@@ -2037,29 +2198,15 @@ dependencies = [
2037
  "libc",
2038
  "rand_chacha 0.1.1",
2039
  "rand_core 0.4.2",
2040
- "rand_hc 0.1.0",
2041
  "rand_isaac",
2042
  "rand_jitter",
2043
  "rand_os",
2044
- "rand_pcg 0.1.2",
2045
  "rand_xorshift",
2046
  "winapi 0.3.9",
2047
  ]
2048
 
2049
- [[package]]
2050
- name = "rand"
2051
- version = "0.7.3"
2052
- source = "registry+https://github.com/rust-lang/crates.io-index"
2053
- checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
2054
- dependencies = [
2055
- "getrandom 0.1.16",
2056
- "libc",
2057
- "rand_chacha 0.2.2",
2058
- "rand_core 0.5.1",
2059
- "rand_hc 0.2.0",
2060
- "rand_pcg 0.2.1",
2061
- ]
2062
-
2063
  [[package]]
2064
  name = "rand"
2065
  version = "0.8.5"
@@ -2081,16 +2228,6 @@ dependencies = [
2081
  "rand_core 0.3.1",
2082
  ]
2083
 
2084
- [[package]]
2085
- name = "rand_chacha"
2086
- version = "0.2.2"
2087
- source = "registry+https://github.com/rust-lang/crates.io-index"
2088
- checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
2089
- dependencies = [
2090
- "ppv-lite86",
2091
- "rand_core 0.5.1",
2092
- ]
2093
-
2094
  [[package]]
2095
  name = "rand_chacha"
2096
  version = "0.3.1"
@@ -2116,22 +2253,13 @@ version = "0.4.2"
2116
  source = "registry+https://github.com/rust-lang/crates.io-index"
2117
  checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
2118
 
2119
- [[package]]
2120
- name = "rand_core"
2121
- version = "0.5.1"
2122
- source = "registry+https://github.com/rust-lang/crates.io-index"
2123
- checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
2124
- dependencies = [
2125
- "getrandom 0.1.16",
2126
- ]
2127
-
2128
  [[package]]
2129
  name = "rand_core"
2130
  version = "0.6.4"
2131
  source = "registry+https://github.com/rust-lang/crates.io-index"
2132
  checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
2133
  dependencies = [
2134
- "getrandom 0.2.10",
2135
  ]
2136
 
2137
  [[package]]
@@ -2143,15 +2271,6 @@ dependencies = [
2143
  "rand_core 0.3.1",
2144
  ]
2145
 
2146
- [[package]]
2147
- name = "rand_hc"
2148
- version = "0.2.0"
2149
- source = "registry+https://github.com/rust-lang/crates.io-index"
2150
- checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
2151
- dependencies = [
2152
- "rand_core 0.5.1",
2153
- ]
2154
-
2155
  [[package]]
2156
  name = "rand_isaac"
2157
  version = "0.1.1"
@@ -2197,21 +2316,34 @@ dependencies = [
2197
  ]
2198
 
2199
  [[package]]
2200
- name = "rand_pcg"
2201
- version = "0.2.1"
2202
  source = "registry+https://github.com/rust-lang/crates.io-index"
2203
- checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
2204
  dependencies = [
2205
- "rand_core 0.5.1",
2206
  ]
2207
 
2208
  [[package]]
2209
- name = "rand_xorshift"
2210
- version = "0.1.1"
2211
  source = "registry+https://github.com/rust-lang/crates.io-index"
2212
- checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
2213
  dependencies = [
2214
- "rand_core 0.3.1",
 
 
 
 
 
 
 
 
 
 
 
 
 
2215
  ]
2216
 
2217
  [[package]]
@@ -2249,7 +2381,7 @@ version = "0.3.5"
2249
  source = "registry+https://github.com/rust-lang/crates.io-index"
2250
  checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
2251
  dependencies = [
2252
- "bitflags",
2253
  ]
2254
 
2255
  [[package]]
@@ -2314,10 +2446,10 @@ dependencies = [
2314
  "encoding_rs",
2315
  "futures-core",
2316
  "futures-util",
2317
- "h2 0.3.19",
2318
  "http 0.2.9",
2319
  "http-body 0.4.5",
2320
- "hyper 0.14.26",
2321
  "hyper-tls 0.5.0",
2322
  "ipnet",
2323
  "js-sys",
@@ -2330,7 +2462,7 @@ dependencies = [
2330
  "serde",
2331
  "serde_json",
2332
  "serde_urlencoded 0.7.1",
2333
- "tokio 1.28.2",
2334
  "tokio-native-tls",
2335
  "tower-service",
2336
  "url 2.4.0",
@@ -2346,7 +2478,7 @@ version = "0.19.5"
2346
  source = "registry+https://github.com/rust-lang/crates.io-index"
2347
  checksum = "753540fb29c9a615ce5dd64be5c957271adc887c8424555fc372e0b88ebde074"
2348
  dependencies = [
2349
- "bitflags",
2350
  "bstr",
2351
  "libc",
2352
  "num-traits",
@@ -2390,15 +2522,28 @@ dependencies = [
2390
 
2391
  [[package]]
2392
  name = "rustix"
2393
- version = "0.37.20"
2394
  source = "registry+https://github.com/rust-lang/crates.io-index"
2395
- checksum = "b96e891d04aa506a6d1f318d2771bcb1c7dfda84e126660ace067c9b474bb2c0"
2396
  dependencies = [
2397
- "bitflags",
2398
  "errno",
2399
  "io-lifetimes",
2400
  "libc",
2401
- "linux-raw-sys",
 
 
 
 
 
 
 
 
 
 
 
 
 
2402
  "windows-sys 0.48.0",
2403
  ]
2404
 
@@ -2446,9 +2591,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
2446
 
2447
  [[package]]
2448
  name = "scraper"
2449
- version = "0.16.0"
2450
  source = "registry+https://github.com/rust-lang/crates.io-index"
2451
- checksum = "59e25654b5e9fd557a67dbaab5a5d36b8c448d0561beb4c041b6dbb902eddfa6"
2452
  dependencies = [
2453
  "ahash 0.8.3",
2454
  "cssparser",
@@ -2467,7 +2612,7 @@ version = "2.9.1"
2467
  source = "registry+https://github.com/rust-lang/crates.io-index"
2468
  checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8"
2469
  dependencies = [
2470
- "bitflags",
2471
  "core-foundation",
2472
  "core-foundation-sys",
2473
  "libc",
@@ -2496,17 +2641,18 @@ dependencies = [
2496
 
2497
  [[package]]
2498
  name = "selectors"
2499
- version = "0.24.0"
2500
  source = "registry+https://github.com/rust-lang/crates.io-index"
2501
- checksum = "0c37578180969d00692904465fb7f6b3d50b9a2b952b87c23d0e2e5cb5013416"
2502
  dependencies = [
2503
- "bitflags",
2504
  "cssparser",
2505
  "derive_more",
2506
  "fxhash",
2507
  "log",
2508
- "phf 0.8.0",
2509
- "phf_codegen 0.8.0",
 
2510
  "precomputed-hash",
2511
  "servo_arc",
2512
  "smallvec 1.10.0",
@@ -2548,16 +2694,16 @@ version = "1.0.164"
2548
  source = "registry+https://github.com/rust-lang/crates.io-index"
2549
  checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68"
2550
  dependencies = [
2551
- "proc-macro2 1.0.60",
2552
- "quote 1.0.28",
2553
- "syn 2.0.18",
2554
  ]
2555
 
2556
  [[package]]
2557
  name = "serde_json"
2558
- version = "1.0.97"
2559
  source = "registry+https://github.com/rust-lang/crates.io-index"
2560
- checksum = "bdf3bf93142acad5821c99197022e170842cdbc1c30482b98750c688c640842a"
2561
  dependencies = [
2562
  "itoa 1.0.6",
2563
  "ryu",
@@ -2590,11 +2736,10 @@ dependencies = [
2590
 
2591
  [[package]]
2592
  name = "servo_arc"
2593
- version = "0.2.0"
2594
  source = "registry+https://github.com/rust-lang/crates.io-index"
2595
- checksum = "d52aa42f8fdf0fed91e5ce7f23d8138441002fa31dca008acf47e6fd4721f741"
2596
  dependencies = [
2597
- "nodrop",
2598
  "stable_deref_trait",
2599
  ]
2600
 
@@ -2733,8 +2878,8 @@ checksum = "f0f45ed1b65bf9a4bf2f7b7dc59212d1926e9eaf00fa998988e420fd124467c6"
2733
  dependencies = [
2734
  "phf_generator 0.7.24",
2735
  "phf_shared 0.7.24",
2736
- "proc-macro2 1.0.60",
2737
- "quote 1.0.28",
2738
  "string_cache_shared",
2739
  ]
2740
 
@@ -2746,8 +2891,8 @@ checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988"
2746
  dependencies = [
2747
  "phf_generator 0.10.0",
2748
  "phf_shared 0.10.0",
2749
- "proc-macro2 1.0.60",
2750
- "quote 1.0.28",
2751
  ]
2752
 
2753
  [[package]]
@@ -2773,19 +2918,19 @@ version = "1.0.109"
2773
  source = "registry+https://github.com/rust-lang/crates.io-index"
2774
  checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
2775
  dependencies = [
2776
- "proc-macro2 1.0.60",
2777
- "quote 1.0.28",
2778
  "unicode-ident",
2779
  ]
2780
 
2781
  [[package]]
2782
  name = "syn"
2783
- version = "2.0.18"
2784
  source = "registry+https://github.com/rust-lang/crates.io-index"
2785
- checksum = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e"
2786
  dependencies = [
2787
- "proc-macro2 1.0.60",
2788
- "quote 1.0.28",
2789
  "unicode-ident",
2790
  ]
2791
 
@@ -2795,8 +2940,8 @@ version = "0.12.6"
2795
  source = "registry+https://github.com/rust-lang/crates.io-index"
2796
  checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
2797
  dependencies = [
2798
- "proc-macro2 1.0.60",
2799
- "quote 1.0.28",
2800
  "syn 1.0.109",
2801
  "unicode-xid 0.2.4",
2802
  ]
@@ -2811,7 +2956,7 @@ dependencies = [
2811
  "cfg-if 1.0.0",
2812
  "fastrand",
2813
  "redox_syscall 0.3.5",
2814
- "rustix",
2815
  "windows-sys 0.48.0",
2816
  ]
2817
 
@@ -2850,9 +2995,9 @@ version = "1.0.40"
2850
  source = "registry+https://github.com/rust-lang/crates.io-index"
2851
  checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
2852
  dependencies = [
2853
- "proc-macro2 1.0.60",
2854
- "quote 1.0.28",
2855
- "syn 2.0.18",
2856
  ]
2857
 
2858
  [[package]]
@@ -2893,6 +3038,16 @@ dependencies = [
2893
  "time-core",
2894
  ]
2895
 
 
 
 
 
 
 
 
 
 
 
2896
  [[package]]
2897
  name = "tinyvec"
2898
  version = "1.6.0"
@@ -2929,11 +3084,12 @@ dependencies = [
2929
 
2930
  [[package]]
2931
  name = "tokio"
2932
- version = "1.28.2"
2933
  source = "registry+https://github.com/rust-lang/crates.io-index"
2934
- checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2"
2935
  dependencies = [
2936
  "autocfg 1.1.0",
 
2937
  "bytes 1.4.0",
2938
  "libc",
2939
  "mio 0.8.8",
@@ -2973,7 +3129,7 @@ version = "0.1.10"
2973
  source = "registry+https://github.com/rust-lang/crates.io-index"
2974
  checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671"
2975
  dependencies = [
2976
- "crossbeam-utils",
2977
  "futures",
2978
  ]
2979
 
@@ -2994,9 +3150,9 @@ version = "2.1.0"
2994
  source = "registry+https://github.com/rust-lang/crates.io-index"
2995
  checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
2996
  dependencies = [
2997
- "proc-macro2 1.0.60",
2998
- "quote 1.0.28",
2999
- "syn 2.0.18",
3000
  ]
3001
 
3002
  [[package]]
@@ -3006,7 +3162,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
3006
  checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
3007
  dependencies = [
3008
  "native-tls",
3009
- "tokio 1.28.2",
3010
  ]
3011
 
3012
  [[package]]
@@ -3015,7 +3171,7 @@ version = "0.1.12"
3015
  source = "registry+https://github.com/rust-lang/crates.io-index"
3016
  checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351"
3017
  dependencies = [
3018
- "crossbeam-utils",
3019
  "futures",
3020
  "lazy_static",
3021
  "log",
@@ -3058,9 +3214,9 @@ version = "0.1.18"
3058
  source = "registry+https://github.com/rust-lang/crates.io-index"
3059
  checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89"
3060
  dependencies = [
3061
- "crossbeam-deque",
3062
  "crossbeam-queue",
3063
- "crossbeam-utils",
3064
  "futures",
3065
  "lazy_static",
3066
  "log",
@@ -3075,7 +3231,7 @@ version = "0.2.13"
3075
  source = "registry+https://github.com/rust-lang/crates.io-index"
3076
  checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296"
3077
  dependencies = [
3078
- "crossbeam-utils",
3079
  "futures",
3080
  "slab",
3081
  "tokio-executor",
@@ -3091,7 +3247,7 @@ dependencies = [
3091
  "futures-core",
3092
  "futures-sink",
3093
  "pin-project-lite",
3094
- "tokio 1.28.2",
3095
  "tracing",
3096
  ]
3097
 
@@ -3285,12 +3441,6 @@ dependencies = [
3285
  "try-lock",
3286
  ]
3287
 
3288
- [[package]]
3289
- name = "wasi"
3290
- version = "0.9.0+wasi-snapshot-preview1"
3291
- source = "registry+https://github.com/rust-lang/crates.io-index"
3292
- checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
3293
-
3294
  [[package]]
3295
  name = "wasi"
3296
  version = "0.10.0+wasi-snapshot-preview1"
@@ -3322,9 +3472,9 @@ dependencies = [
3322
  "bumpalo",
3323
  "log",
3324
  "once_cell",
3325
- "proc-macro2 1.0.60",
3326
- "quote 1.0.28",
3327
- "syn 2.0.18",
3328
  "wasm-bindgen-shared",
3329
  ]
3330
 
@@ -3346,7 +3496,7 @@ version = "0.2.87"
3346
  source = "registry+https://github.com/rust-lang/crates.io-index"
3347
  checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
3348
  dependencies = [
3349
- "quote 1.0.28",
3350
  "wasm-bindgen-macro-support",
3351
  ]
3352
 
@@ -3356,9 +3506,9 @@ version = "0.2.87"
3356
  source = "registry+https://github.com/rust-lang/crates.io-index"
3357
  checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
3358
  dependencies = [
3359
- "proc-macro2 1.0.60",
3360
- "quote 1.0.28",
3361
- "syn 2.0.18",
3362
  "wasm-bindgen-backend",
3363
  "wasm-bindgen-shared",
3364
  ]
@@ -3381,10 +3531,11 @@ dependencies = [
3381
 
3382
  [[package]]
3383
  name = "websurfx"
3384
- version = "0.13.0"
3385
  dependencies = [
3386
  "actix-files",
3387
  "actix-web",
 
3388
  "env_logger",
3389
  "error-stack",
3390
  "fake-useragent",
@@ -3400,7 +3551,7 @@ dependencies = [
3400
  "scraper",
3401
  "serde",
3402
  "serde_json",
3403
- "tokio 1.28.2",
3404
  ]
3405
 
3406
  [[package]]
@@ -3472,9 +3623,9 @@ dependencies = [
3472
 
3473
  [[package]]
3474
  name = "windows-targets"
3475
- version = "0.48.0"
3476
  source = "registry+https://github.com/rust-lang/crates.io-index"
3477
- checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
3478
  dependencies = [
3479
  "windows_aarch64_gnullvm 0.48.0",
3480
  "windows_aarch64_msvc 0.48.0",
 
8
  source = "registry+https://github.com/rust-lang/crates.io-index"
9
  checksum = "617a8268e3537fe1d8c9ead925fca49ef6400927ee7bc26750e90ecee14ce4b8"
10
  dependencies = [
11
+ "bitflags 1.3.2",
12
  "bytes 1.4.0",
13
  "futures-core",
14
  "futures-sink",
15
  "memchr",
16
  "pin-project-lite",
17
+ "tokio 1.29.1",
18
  "tokio-util",
19
  "tracing",
20
  ]
 
30
  "actix-utils",
31
  "actix-web",
32
  "askama_escape",
33
+ "bitflags 1.3.2",
34
  "bytes 1.4.0",
35
  "derive_more",
36
  "futures-core",
 
54
  "actix-utils",
55
  "ahash 0.8.3",
56
  "base64 0.21.2",
57
+ "bitflags 1.3.2",
58
  "brotli",
59
  "bytes 1.4.0",
60
  "bytestring",
 
62
  "encoding_rs",
63
  "flate2",
64
  "futures-core",
65
+ "h2 0.3.20",
66
  "http 0.2.9",
67
  "httparse",
68
  "httpdate",
 
75
  "rand 0.8.5",
76
  "sha1",
77
  "smallvec 1.10.0",
78
+ "tokio 1.29.1",
79
  "tokio-util",
80
  "tracing",
81
  "zstd",
 
87
  source = "registry+https://github.com/rust-lang/crates.io-index"
88
  checksum = "465a6172cf69b960917811022d8f29bc0b7fa1398bc4f78b3c466673db1213b6"
89
  dependencies = [
90
+ "quote 1.0.29",
91
  "syn 1.0.109",
92
  ]
93
 
 
111
  checksum = "15265b6b8e2347670eb363c47fc8c75208b4a4994b27192f345fcbe707804f3e"
112
  dependencies = [
113
  "futures-core",
114
+ "tokio 1.29.1",
115
  ]
116
 
117
  [[package]]
 
128
  "mio 0.8.8",
129
  "num_cpus",
130
  "socket2",
131
+ "tokio 1.29.1",
132
  "tracing",
133
  ]
134
 
 
201
  checksum = "2262160a7ae29e3415554a3f1fc04c764b1540c116aa524683208078b7a75bc9"
202
  dependencies = [
203
  "actix-router",
204
+ "proc-macro2 1.0.63",
205
+ "quote 1.0.29",
206
  "syn 1.0.109",
207
  ]
208
 
209
  [[package]]
210
  name = "addr2line"
211
+ version = "0.20.0"
212
  source = "registry+https://github.com/rust-lang/crates.io-index"
213
+ checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3"
214
  dependencies = [
215
  "gimli",
216
  ]
 
227
  source = "registry+https://github.com/rust-lang/crates.io-index"
228
  checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
229
  dependencies = [
230
+ "getrandom",
231
  "once_cell",
232
  "version_check",
233
  ]
 
239
  checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
240
  dependencies = [
241
  "cfg-if 1.0.0",
242
+ "getrandom",
243
  "once_cell",
244
  "version_check",
245
  ]
 
268
  "alloc-no-stdlib",
269
  ]
270
 
271
+ [[package]]
272
+ name = "anes"
273
+ version = "0.1.6"
274
+ source = "registry+https://github.com/rust-lang/crates.io-index"
275
+ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
276
+
277
+ [[package]]
278
+ name = "anstyle"
279
+ version = "1.0.1"
280
+ source = "registry+https://github.com/rust-lang/crates.io-index"
281
+ checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"
282
+
283
  [[package]]
284
  name = "anyhow"
285
  version = "1.0.71"
 
309
 
310
  [[package]]
311
  name = "backtrace"
312
+ version = "0.3.68"
313
  source = "registry+https://github.com/rust-lang/crates.io-index"
314
+ checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12"
315
  dependencies = [
316
  "addr2line",
317
  "cc",
318
  "cfg-if 1.0.0",
319
  "libc",
320
+ "miniz_oxide",
321
  "object",
322
  "rustc-demangle",
323
  ]
 
358
  source = "registry+https://github.com/rust-lang/crates.io-index"
359
  checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
360
 
361
+ [[package]]
362
+ name = "bitflags"
363
+ version = "2.3.3"
364
+ source = "registry+https://github.com/rust-lang/crates.io-index"
365
+ checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
366
+
367
  [[package]]
368
  name = "block-buffer"
369
  version = "0.10.4"
 
441
  "bytes 1.4.0",
442
  ]
443
 
444
+ [[package]]
445
+ name = "cast"
446
+ version = "0.3.0"
447
+ source = "registry+https://github.com/rust-lang/crates.io-index"
448
+ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
449
+
450
  [[package]]
451
  name = "cc"
452
  version = "1.0.79"
 
477
  "envmnt",
478
  ]
479
 
480
+ [[package]]
481
+ name = "ciborium"
482
+ version = "0.2.1"
483
+ source = "registry+https://github.com/rust-lang/crates.io-index"
484
+ checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926"
485
+ dependencies = [
486
+ "ciborium-io",
487
+ "ciborium-ll",
488
+ "serde",
489
+ ]
490
+
491
+ [[package]]
492
+ name = "ciborium-io"
493
+ version = "0.2.1"
494
+ source = "registry+https://github.com/rust-lang/crates.io-index"
495
+ checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656"
496
+
497
+ [[package]]
498
+ name = "ciborium-ll"
499
+ version = "0.2.1"
500
+ source = "registry+https://github.com/rust-lang/crates.io-index"
501
+ checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b"
502
+ dependencies = [
503
+ "ciborium-io",
504
+ "half",
505
+ ]
506
+
507
+ [[package]]
508
+ name = "clap"
509
+ version = "4.3.10"
510
+ source = "registry+https://github.com/rust-lang/crates.io-index"
511
+ checksum = "384e169cc618c613d5e3ca6404dda77a8685a63e08660dcc64abaf7da7cb0c7a"
512
+ dependencies = [
513
+ "clap_builder",
514
+ ]
515
+
516
+ [[package]]
517
+ name = "clap_builder"
518
+ version = "4.3.10"
519
+ source = "registry+https://github.com/rust-lang/crates.io-index"
520
+ checksum = "ef137bbe35aab78bdb468ccfba75a5f4d8321ae011d34063770780545176af2d"
521
+ dependencies = [
522
+ "anstyle",
523
+ "clap_lex",
524
+ ]
525
+
526
+ [[package]]
527
+ name = "clap_lex"
528
+ version = "0.5.0"
529
+ source = "registry+https://github.com/rust-lang/crates.io-index"
530
+ checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
531
+
532
  [[package]]
533
  name = "cloudabi"
534
  version = "0.0.3"
535
  source = "registry+https://github.com/rust-lang/crates.io-index"
536
  checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
537
  dependencies = [
538
+ "bitflags 1.3.2",
539
  ]
540
 
541
  [[package]]
 
627
  "cfg-if 1.0.0",
628
  ]
629
 
630
+ [[package]]
631
+ name = "criterion"
632
+ version = "0.5.1"
633
+ source = "registry+https://github.com/rust-lang/crates.io-index"
634
+ checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f"
635
+ dependencies = [
636
+ "anes",
637
+ "cast",
638
+ "ciborium",
639
+ "clap",
640
+ "criterion-plot",
641
+ "is-terminal",
642
+ "itertools",
643
+ "num-traits",
644
+ "once_cell",
645
+ "oorandom",
646
+ "plotters",
647
+ "rayon",
648
+ "regex",
649
+ "serde",
650
+ "serde_derive",
651
+ "serde_json",
652
+ "tinytemplate",
653
+ "walkdir",
654
+ ]
655
+
656
+ [[package]]
657
+ name = "criterion-plot"
658
+ version = "0.5.0"
659
+ source = "registry+https://github.com/rust-lang/crates.io-index"
660
+ checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
661
+ dependencies = [
662
+ "cast",
663
+ "itertools",
664
+ ]
665
+
666
+ [[package]]
667
+ name = "crossbeam-channel"
668
+ version = "0.5.8"
669
+ source = "registry+https://github.com/rust-lang/crates.io-index"
670
+ checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
671
+ dependencies = [
672
+ "cfg-if 1.0.0",
673
+ "crossbeam-utils 0.8.16",
674
+ ]
675
+
676
  [[package]]
677
  name = "crossbeam-deque"
678
  version = "0.7.4"
679
  source = "registry+https://github.com/rust-lang/crates.io-index"
680
  checksum = "c20ff29ded3204c5106278a81a38f4b482636ed4fa1e6cfbeef193291beb29ed"
681
  dependencies = [
682
+ "crossbeam-epoch 0.8.2",
683
+ "crossbeam-utils 0.7.2",
684
  "maybe-uninit",
685
  ]
686
 
687
+ [[package]]
688
+ name = "crossbeam-deque"
689
+ version = "0.8.3"
690
+ source = "registry+https://github.com/rust-lang/crates.io-index"
691
+ checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
692
+ dependencies = [
693
+ "cfg-if 1.0.0",
694
+ "crossbeam-epoch 0.9.15",
695
+ "crossbeam-utils 0.8.16",
696
+ ]
697
+
698
  [[package]]
699
  name = "crossbeam-epoch"
700
  version = "0.8.2"
 
703
  dependencies = [
704
  "autocfg 1.1.0",
705
  "cfg-if 0.1.10",
706
+ "crossbeam-utils 0.7.2",
707
  "lazy_static",
708
  "maybe-uninit",
709
+ "memoffset 0.5.6",
710
+ "scopeguard",
711
+ ]
712
+
713
+ [[package]]
714
+ name = "crossbeam-epoch"
715
+ version = "0.9.15"
716
+ source = "registry+https://github.com/rust-lang/crates.io-index"
717
+ checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
718
+ dependencies = [
719
+ "autocfg 1.1.0",
720
+ "cfg-if 1.0.0",
721
+ "crossbeam-utils 0.8.16",
722
+ "memoffset 0.9.0",
723
  "scopeguard",
724
  ]
725
 
 
730
  checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
731
  dependencies = [
732
  "cfg-if 0.1.10",
733
+ "crossbeam-utils 0.7.2",
734
  "maybe-uninit",
735
  ]
736
 
 
745
  "lazy_static",
746
  ]
747
 
748
+ [[package]]
749
+ name = "crossbeam-utils"
750
+ version = "0.8.16"
751
+ source = "registry+https://github.com/rust-lang/crates.io-index"
752
+ checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
753
+ dependencies = [
754
+ "cfg-if 1.0.0",
755
+ ]
756
+
757
  [[package]]
758
  name = "crypto-common"
759
  version = "0.1.6"
 
766
 
767
  [[package]]
768
  name = "cssparser"
769
+ version = "0.31.2"
770
  source = "registry+https://github.com/rust-lang/crates.io-index"
771
+ checksum = "5b3df4f93e5fbbe73ec01ec8d3f68bba73107993a5b1e7519273c32db9b0d5be"
772
  dependencies = [
773
  "cssparser-macros",
774
  "dtoa-short",
775
  "itoa 1.0.6",
776
+ "phf 0.11.2",
 
 
 
777
  "smallvec 1.10.0",
 
778
  ]
779
 
780
  [[package]]
 
783
  source = "registry+https://github.com/rust-lang/crates.io-index"
784
  checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
785
  dependencies = [
786
+ "quote 1.0.29",
787
+ "syn 2.0.22",
788
  ]
789
 
790
  [[package]]
 
794
  checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
795
  dependencies = [
796
  "convert_case",
797
+ "proc-macro2 1.0.63",
798
+ "quote 1.0.29",
799
  "rustc_version 0.4.0",
800
  "syn 1.0.109",
801
  ]
 
922
  source = "registry+https://github.com/rust-lang/crates.io-index"
923
  checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
924
  dependencies = [
925
+ "proc-macro2 1.0.63",
926
+ "quote 1.0.29",
927
  "syn 1.0.109",
928
  "synstructure",
929
  ]
 
955
  checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743"
956
  dependencies = [
957
  "crc32fast",
958
+ "miniz_oxide",
959
  ]
960
 
961
  [[package]]
 
1006
  source = "registry+https://github.com/rust-lang/crates.io-index"
1007
  checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
1008
  dependencies = [
1009
+ "bitflags 1.3.2",
1010
  "fuchsia-zircon-sys",
1011
  ]
1012
 
 
1109
  "unicode-width",
1110
  ]
1111
 
 
 
 
 
 
 
 
 
 
 
 
1112
  [[package]]
1113
  name = "getrandom"
1114
  version = "0.2.10"
 
1146
 
1147
  [[package]]
1148
  name = "h2"
1149
+ version = "0.3.20"
1150
  source = "registry+https://github.com/rust-lang/crates.io-index"
1151
+ checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049"
1152
  dependencies = [
1153
  "bytes 1.4.0",
1154
  "fnv",
 
1158
  "http 0.2.9",
1159
  "indexmap",
1160
  "slab",
1161
+ "tokio 1.29.1",
1162
  "tokio-util",
1163
  "tracing",
1164
  ]
1165
 
1166
+ [[package]]
1167
+ name = "half"
1168
+ version = "1.8.2"
1169
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1170
+ checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
1171
+
1172
  [[package]]
1173
  name = "handlebars"
1174
  version = "4.3.7"
 
1190
  source = "registry+https://github.com/rust-lang/crates.io-index"
1191
  checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
1192
 
 
 
 
 
 
 
 
 
 
1193
  [[package]]
1194
  name = "hermit-abi"
1195
  version = "0.3.1"
 
1219
  "log",
1220
  "mac",
1221
  "markup5ever 0.11.0",
1222
+ "proc-macro2 1.0.63",
1223
+ "quote 1.0.29",
1224
  "syn 1.0.109",
1225
  ]
1226
 
 
1325
 
1326
  [[package]]
1327
  name = "hyper"
1328
+ version = "0.14.27"
1329
  source = "registry+https://github.com/rust-lang/crates.io-index"
1330
+ checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468"
1331
  dependencies = [
1332
  "bytes 1.4.0",
1333
  "futures-channel",
1334
  "futures-core",
1335
  "futures-util",
1336
+ "h2 0.3.20",
1337
  "http 0.2.9",
1338
  "http-body 0.4.5",
1339
  "httparse",
 
1341
  "itoa 1.0.6",
1342
  "pin-project-lite",
1343
  "socket2",
1344
+ "tokio 1.29.1",
1345
  "tower-service",
1346
  "tracing",
1347
  "want 0.3.1",
 
1367
  checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
1368
  dependencies = [
1369
  "bytes 1.4.0",
1370
+ "hyper 0.14.27",
1371
  "native-tls",
1372
+ "tokio 1.29.1",
1373
  "tokio-native-tls",
1374
  ]
1375
 
 
1430
  source = "registry+https://github.com/rust-lang/crates.io-index"
1431
  checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
1432
  dependencies = [
1433
+ "hermit-abi",
1434
  "libc",
1435
  "windows-sys 0.48.0",
1436
  ]
 
1446
 
1447
  [[package]]
1448
  name = "ipnet"
1449
+ version = "2.8.0"
1450
  source = "registry+https://github.com/rust-lang/crates.io-index"
1451
+ checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6"
1452
 
1453
  [[package]]
1454
  name = "is-terminal"
1455
+ version = "0.4.8"
1456
  source = "registry+https://github.com/rust-lang/crates.io-index"
1457
+ checksum = "24fddda5af7e54bf7da53067d6e802dbcc381d0a8eef629df528e3ebf68755cb"
1458
  dependencies = [
1459
+ "hermit-abi",
1460
+ "rustix 0.38.1",
 
1461
  "windows-sys 0.48.0",
1462
  ]
1463
 
1464
+ [[package]]
1465
+ name = "itertools"
1466
+ version = "0.10.5"
1467
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1468
+ checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
1469
+ dependencies = [
1470
+ "either",
1471
+ ]
1472
+
1473
  [[package]]
1474
  name = "itoa"
1475
  version = "0.4.8"
 
1524
 
1525
  [[package]]
1526
  name = "libc"
1527
+ version = "0.2.147"
1528
  source = "registry+https://github.com/rust-lang/crates.io-index"
1529
+ checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
1530
 
1531
  [[package]]
1532
  name = "linux-raw-sys"
 
1534
  source = "registry+https://github.com/rust-lang/crates.io-index"
1535
  checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
1536
 
1537
+ [[package]]
1538
+ name = "linux-raw-sys"
1539
+ version = "0.4.3"
1540
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1541
+ checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0"
1542
+
1543
  [[package]]
1544
  name = "local-channel"
1545
  version = "0.1.3"
 
1653
  "autocfg 1.1.0",
1654
  ]
1655
 
1656
+ [[package]]
1657
+ name = "memoffset"
1658
+ version = "0.9.0"
1659
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1660
+ checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
1661
+ dependencies = [
1662
+ "autocfg 1.1.0",
1663
+ ]
1664
+
1665
  [[package]]
1666
  name = "mime"
1667
  version = "0.3.17"
 
1678
  "unicase",
1679
  ]
1680
 
 
 
 
 
 
 
 
 
 
1681
  [[package]]
1682
  name = "miniz_oxide"
1683
  version = "0.7.1"
 
1771
  source = "registry+https://github.com/rust-lang/crates.io-index"
1772
  checksum = "ab250442c86f1850815b5d268639dff018c0627022bc1940eb2d642ca1ce12f0"
1773
 
 
 
 
 
 
 
1774
  [[package]]
1775
  name = "num-traits"
1776
  version = "0.2.15"
 
1782
 
1783
  [[package]]
1784
  name = "num_cpus"
1785
+ version = "1.16.0"
1786
  source = "registry+https://github.com/rust-lang/crates.io-index"
1787
+ checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
1788
  dependencies = [
1789
+ "hermit-abi",
1790
  "libc",
1791
  ]
1792
 
1793
  [[package]]
1794
  name = "object"
1795
+ version = "0.31.1"
1796
  source = "registry+https://github.com/rust-lang/crates.io-index"
1797
+ checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1"
1798
  dependencies = [
1799
  "memchr",
1800
  ]
 
1805
  source = "registry+https://github.com/rust-lang/crates.io-index"
1806
  checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
1807
 
1808
+ [[package]]
1809
+ name = "oorandom"
1810
+ version = "11.1.3"
1811
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1812
+ checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
1813
+
1814
  [[package]]
1815
  name = "openssl"
1816
+ version = "0.10.55"
1817
  source = "registry+https://github.com/rust-lang/crates.io-index"
1818
+ checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d"
1819
  dependencies = [
1820
+ "bitflags 1.3.2",
1821
  "cfg-if 1.0.0",
1822
  "foreign-types",
1823
  "libc",
 
1832
  source = "registry+https://github.com/rust-lang/crates.io-index"
1833
  checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
1834
  dependencies = [
1835
+ "proc-macro2 1.0.63",
1836
+ "quote 1.0.29",
1837
+ "syn 2.0.22",
1838
  ]
1839
 
1840
  [[package]]
 
1845
 
1846
  [[package]]
1847
  name = "openssl-sys"
1848
+ version = "0.9.90"
1849
  source = "registry+https://github.com/rust-lang/crates.io-index"
1850
+ checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6"
1851
  dependencies = [
1852
  "cc",
1853
  "libc",
 
1924
 
1925
  [[package]]
1926
  name = "pest"
1927
+ version = "2.7.0"
1928
  source = "registry+https://github.com/rust-lang/crates.io-index"
1929
+ checksum = "f73935e4d55e2abf7f130186537b19e7a4abc886a0252380b59248af473a3fc9"
1930
  dependencies = [
1931
  "thiserror",
1932
  "ucd-trie",
 
1934
 
1935
  [[package]]
1936
  name = "pest_derive"
1937
+ version = "2.7.0"
1938
  source = "registry+https://github.com/rust-lang/crates.io-index"
1939
+ checksum = "aef623c9bbfa0eedf5a0efba11a5ee83209c326653ca31ff019bec3a95bfff2b"
1940
  dependencies = [
1941
  "pest",
1942
  "pest_generator",
 
1944
 
1945
  [[package]]
1946
  name = "pest_generator"
1947
+ version = "2.7.0"
1948
  source = "registry+https://github.com/rust-lang/crates.io-index"
1949
+ checksum = "b3e8cba4ec22bada7fc55ffe51e2deb6a0e0db2d0b7ab0b103acc80d2510c190"
1950
  dependencies = [
1951
  "pest",
1952
  "pest_meta",
1953
+ "proc-macro2 1.0.63",
1954
+ "quote 1.0.29",
1955
+ "syn 2.0.22",
1956
  ]
1957
 
1958
  [[package]]
1959
  name = "pest_meta"
1960
+ version = "2.7.0"
1961
  source = "registry+https://github.com/rust-lang/crates.io-index"
1962
+ checksum = "a01f71cb40bd8bb94232df14b946909e14660e33fc05db3e50ae2a82d7ea0ca0"
1963
  dependencies = [
1964
  "once_cell",
1965
  "pest",
 
1977
 
1978
  [[package]]
1979
  name = "phf"
1980
+ version = "0.10.1"
1981
  source = "registry+https://github.com/rust-lang/crates.io-index"
1982
+ checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
1983
  dependencies = [
1984
+ "phf_shared 0.10.0",
1985
  ]
1986
 
1987
  [[package]]
1988
  name = "phf"
1989
+ version = "0.11.2"
1990
  source = "registry+https://github.com/rust-lang/crates.io-index"
1991
+ checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
1992
  dependencies = [
1993
  "phf_macros",
1994
+ "phf_shared 0.11.2",
 
1995
  ]
1996
 
1997
  [[package]]
 
2004
  "phf_shared 0.7.24",
2005
  ]
2006
 
 
 
 
 
 
 
 
 
 
 
2007
  [[package]]
2008
  name = "phf_codegen"
2009
  version = "0.10.0"
 
2026
 
2027
  [[package]]
2028
  name = "phf_generator"
2029
+ version = "0.10.0"
2030
  source = "registry+https://github.com/rust-lang/crates.io-index"
2031
+ checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
2032
  dependencies = [
2033
+ "phf_shared 0.10.0",
2034
+ "rand 0.8.5",
2035
  ]
2036
 
2037
  [[package]]
2038
  name = "phf_generator"
2039
+ version = "0.11.2"
2040
  source = "registry+https://github.com/rust-lang/crates.io-index"
2041
+ checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
2042
  dependencies = [
2043
+ "phf_shared 0.11.2",
2044
  "rand 0.8.5",
2045
  ]
2046
 
2047
  [[package]]
2048
  name = "phf_macros"
2049
+ version = "0.11.2"
2050
  source = "registry+https://github.com/rust-lang/crates.io-index"
2051
+ checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b"
2052
  dependencies = [
2053
+ "phf_generator 0.11.2",
2054
+ "phf_shared 0.11.2",
2055
+ "proc-macro2 1.0.63",
2056
+ "quote 1.0.29",
2057
+ "syn 2.0.22",
 
2058
  ]
2059
 
2060
  [[package]]
 
2068
 
2069
  [[package]]
2070
  name = "phf_shared"
2071
+ version = "0.10.0"
2072
  source = "registry+https://github.com/rust-lang/crates.io-index"
2073
+ checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
2074
  dependencies = [
2075
  "siphasher 0.3.10",
2076
  ]
2077
 
2078
  [[package]]
2079
  name = "phf_shared"
2080
+ version = "0.11.2"
2081
  source = "registry+https://github.com/rust-lang/crates.io-index"
2082
+ checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
2083
  dependencies = [
2084
  "siphasher 0.3.10",
2085
  ]
 
2102
  source = "registry+https://github.com/rust-lang/crates.io-index"
2103
  checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
2104
 
2105
+ [[package]]
2106
+ name = "plotters"
2107
+ version = "0.3.5"
2108
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2109
+ checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45"
2110
+ dependencies = [
2111
+ "num-traits",
2112
+ "plotters-backend",
2113
+ "plotters-svg",
2114
+ "wasm-bindgen",
2115
+ "web-sys",
2116
+ ]
2117
+
2118
+ [[package]]
2119
+ name = "plotters-backend"
2120
+ version = "0.3.5"
2121
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2122
+ checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609"
2123
+
2124
+ [[package]]
2125
+ name = "plotters-svg"
2126
+ version = "0.3.5"
2127
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2128
+ checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab"
2129
+ dependencies = [
2130
+ "plotters-backend",
2131
+ ]
2132
+
2133
  [[package]]
2134
  name = "ppv-lite86"
2135
  version = "0.2.17"
 
2142
  source = "registry+https://github.com/rust-lang/crates.io-index"
2143
  checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
2144
 
 
 
 
 
 
 
2145
  [[package]]
2146
  name = "proc-macro2"
2147
  version = "0.4.30"
 
2153
 
2154
  [[package]]
2155
  name = "proc-macro2"
2156
+ version = "1.0.63"
2157
  source = "registry+https://github.com/rust-lang/crates.io-index"
2158
+ checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
2159
  dependencies = [
2160
  "unicode-ident",
2161
  ]
 
2181
 
2182
  [[package]]
2183
  name = "quote"
2184
+ version = "1.0.29"
2185
  source = "registry+https://github.com/rust-lang/crates.io-index"
2186
+ checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
2187
  dependencies = [
2188
+ "proc-macro2 1.0.63",
2189
  ]
2190
 
2191
  [[package]]
 
2198
  "libc",
2199
  "rand_chacha 0.1.1",
2200
  "rand_core 0.4.2",
2201
+ "rand_hc",
2202
  "rand_isaac",
2203
  "rand_jitter",
2204
  "rand_os",
2205
+ "rand_pcg",
2206
  "rand_xorshift",
2207
  "winapi 0.3.9",
2208
  ]
2209
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2210
  [[package]]
2211
  name = "rand"
2212
  version = "0.8.5"
 
2228
  "rand_core 0.3.1",
2229
  ]
2230
 
 
 
 
 
 
 
 
 
 
 
2231
  [[package]]
2232
  name = "rand_chacha"
2233
  version = "0.3.1"
 
2253
  source = "registry+https://github.com/rust-lang/crates.io-index"
2254
  checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
2255
 
 
 
 
 
 
 
 
 
 
2256
  [[package]]
2257
  name = "rand_core"
2258
  version = "0.6.4"
2259
  source = "registry+https://github.com/rust-lang/crates.io-index"
2260
  checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
2261
  dependencies = [
2262
+ "getrandom",
2263
  ]
2264
 
2265
  [[package]]
 
2271
  "rand_core 0.3.1",
2272
  ]
2273
 
 
 
 
 
 
 
 
 
 
2274
  [[package]]
2275
  name = "rand_isaac"
2276
  version = "0.1.1"
 
2316
  ]
2317
 
2318
  [[package]]
2319
+ name = "rand_xorshift"
2320
+ version = "0.1.1"
2321
  source = "registry+https://github.com/rust-lang/crates.io-index"
2322
+ checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
2323
  dependencies = [
2324
+ "rand_core 0.3.1",
2325
  ]
2326
 
2327
  [[package]]
2328
+ name = "rayon"
2329
+ version = "1.7.0"
2330
  source = "registry+https://github.com/rust-lang/crates.io-index"
2331
+ checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
2332
  dependencies = [
2333
+ "either",
2334
+ "rayon-core",
2335
+ ]
2336
+
2337
+ [[package]]
2338
+ name = "rayon-core"
2339
+ version = "1.11.0"
2340
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2341
+ checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
2342
+ dependencies = [
2343
+ "crossbeam-channel",
2344
+ "crossbeam-deque 0.8.3",
2345
+ "crossbeam-utils 0.8.16",
2346
+ "num_cpus",
2347
  ]
2348
 
2349
  [[package]]
 
2381
  source = "registry+https://github.com/rust-lang/crates.io-index"
2382
  checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
2383
  dependencies = [
2384
+ "bitflags 1.3.2",
2385
  ]
2386
 
2387
  [[package]]
 
2446
  "encoding_rs",
2447
  "futures-core",
2448
  "futures-util",
2449
+ "h2 0.3.20",
2450
  "http 0.2.9",
2451
  "http-body 0.4.5",
2452
+ "hyper 0.14.27",
2453
  "hyper-tls 0.5.0",
2454
  "ipnet",
2455
  "js-sys",
 
2462
  "serde",
2463
  "serde_json",
2464
  "serde_urlencoded 0.7.1",
2465
+ "tokio 1.29.1",
2466
  "tokio-native-tls",
2467
  "tower-service",
2468
  "url 2.4.0",
 
2478
  source = "registry+https://github.com/rust-lang/crates.io-index"
2479
  checksum = "753540fb29c9a615ce5dd64be5c957271adc887c8424555fc372e0b88ebde074"
2480
  dependencies = [
2481
+ "bitflags 1.3.2",
2482
  "bstr",
2483
  "libc",
2484
  "num-traits",
 
2522
 
2523
  [[package]]
2524
  name = "rustix"
2525
+ version = "0.37.21"
2526
  source = "registry+https://github.com/rust-lang/crates.io-index"
2527
+ checksum = "62f25693a73057a1b4cb56179dd3c7ea21a7c6c5ee7d85781f5749b46f34b79c"
2528
  dependencies = [
2529
+ "bitflags 1.3.2",
2530
  "errno",
2531
  "io-lifetimes",
2532
  "libc",
2533
+ "linux-raw-sys 0.3.8",
2534
+ "windows-sys 0.48.0",
2535
+ ]
2536
+
2537
+ [[package]]
2538
+ name = "rustix"
2539
+ version = "0.38.1"
2540
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2541
+ checksum = "fbc6396159432b5c8490d4e301d8c705f61860b8b6c863bf79942ce5401968f3"
2542
+ dependencies = [
2543
+ "bitflags 2.3.3",
2544
+ "errno",
2545
+ "libc",
2546
+ "linux-raw-sys 0.4.3",
2547
  "windows-sys 0.48.0",
2548
  ]
2549
 
 
2591
 
2592
  [[package]]
2593
  name = "scraper"
2594
+ version = "0.17.1"
2595
  source = "registry+https://github.com/rust-lang/crates.io-index"
2596
+ checksum = "c95a930e03325234c18c7071fd2b60118307e025d6fff3e12745ffbf63a3d29c"
2597
  dependencies = [
2598
  "ahash 0.8.3",
2599
  "cssparser",
 
2612
  source = "registry+https://github.com/rust-lang/crates.io-index"
2613
  checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8"
2614
  dependencies = [
2615
+ "bitflags 1.3.2",
2616
  "core-foundation",
2617
  "core-foundation-sys",
2618
  "libc",
 
2641
 
2642
  [[package]]
2643
  name = "selectors"
2644
+ version = "0.25.0"
2645
  source = "registry+https://github.com/rust-lang/crates.io-index"
2646
+ checksum = "4eb30575f3638fc8f6815f448d50cb1a2e255b0897985c8c59f4d37b72a07b06"
2647
  dependencies = [
2648
+ "bitflags 2.3.3",
2649
  "cssparser",
2650
  "derive_more",
2651
  "fxhash",
2652
  "log",
2653
+ "new_debug_unreachable",
2654
+ "phf 0.10.1",
2655
+ "phf_codegen 0.10.0",
2656
  "precomputed-hash",
2657
  "servo_arc",
2658
  "smallvec 1.10.0",
 
2694
  source = "registry+https://github.com/rust-lang/crates.io-index"
2695
  checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68"
2696
  dependencies = [
2697
+ "proc-macro2 1.0.63",
2698
+ "quote 1.0.29",
2699
+ "syn 2.0.22",
2700
  ]
2701
 
2702
  [[package]]
2703
  name = "serde_json"
2704
+ version = "1.0.99"
2705
  source = "registry+https://github.com/rust-lang/crates.io-index"
2706
+ checksum = "46266871c240a00b8f503b877622fe33430b3c7d963bdc0f2adc511e54a1eae3"
2707
  dependencies = [
2708
  "itoa 1.0.6",
2709
  "ryu",
 
2736
 
2737
  [[package]]
2738
  name = "servo_arc"
2739
+ version = "0.3.0"
2740
  source = "registry+https://github.com/rust-lang/crates.io-index"
2741
+ checksum = "d036d71a959e00c77a63538b90a6c2390969f9772b096ea837205c6bd0491a44"
2742
  dependencies = [
 
2743
  "stable_deref_trait",
2744
  ]
2745
 
 
2878
  dependencies = [
2879
  "phf_generator 0.7.24",
2880
  "phf_shared 0.7.24",
2881
+ "proc-macro2 1.0.63",
2882
+ "quote 1.0.29",
2883
  "string_cache_shared",
2884
  ]
2885
 
 
2891
  dependencies = [
2892
  "phf_generator 0.10.0",
2893
  "phf_shared 0.10.0",
2894
+ "proc-macro2 1.0.63",
2895
+ "quote 1.0.29",
2896
  ]
2897
 
2898
  [[package]]
 
2918
  source = "registry+https://github.com/rust-lang/crates.io-index"
2919
  checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
2920
  dependencies = [
2921
+ "proc-macro2 1.0.63",
2922
+ "quote 1.0.29",
2923
  "unicode-ident",
2924
  ]
2925
 
2926
  [[package]]
2927
  name = "syn"
2928
+ version = "2.0.22"
2929
  source = "registry+https://github.com/rust-lang/crates.io-index"
2930
+ checksum = "2efbeae7acf4eabd6bcdcbd11c92f45231ddda7539edc7806bd1a04a03b24616"
2931
  dependencies = [
2932
+ "proc-macro2 1.0.63",
2933
+ "quote 1.0.29",
2934
  "unicode-ident",
2935
  ]
2936
 
 
2940
  source = "registry+https://github.com/rust-lang/crates.io-index"
2941
  checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
2942
  dependencies = [
2943
+ "proc-macro2 1.0.63",
2944
+ "quote 1.0.29",
2945
  "syn 1.0.109",
2946
  "unicode-xid 0.2.4",
2947
  ]
 
2956
  "cfg-if 1.0.0",
2957
  "fastrand",
2958
  "redox_syscall 0.3.5",
2959
+ "rustix 0.37.21",
2960
  "windows-sys 0.48.0",
2961
  ]
2962
 
 
2995
  source = "registry+https://github.com/rust-lang/crates.io-index"
2996
  checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
2997
  dependencies = [
2998
+ "proc-macro2 1.0.63",
2999
+ "quote 1.0.29",
3000
+ "syn 2.0.22",
3001
  ]
3002
 
3003
  [[package]]
 
3038
  "time-core",
3039
  ]
3040
 
3041
+ [[package]]
3042
+ name = "tinytemplate"
3043
+ version = "1.2.1"
3044
+ source = "registry+https://github.com/rust-lang/crates.io-index"
3045
+ checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
3046
+ dependencies = [
3047
+ "serde",
3048
+ "serde_json",
3049
+ ]
3050
+
3051
  [[package]]
3052
  name = "tinyvec"
3053
  version = "1.6.0"
 
3084
 
3085
  [[package]]
3086
  name = "tokio"
3087
+ version = "1.29.1"
3088
  source = "registry+https://github.com/rust-lang/crates.io-index"
3089
+ checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da"
3090
  dependencies = [
3091
  "autocfg 1.1.0",
3092
+ "backtrace",
3093
  "bytes 1.4.0",
3094
  "libc",
3095
  "mio 0.8.8",
 
3129
  source = "registry+https://github.com/rust-lang/crates.io-index"
3130
  checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671"
3131
  dependencies = [
3132
+ "crossbeam-utils 0.7.2",
3133
  "futures",
3134
  ]
3135
 
 
3150
  source = "registry+https://github.com/rust-lang/crates.io-index"
3151
  checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
3152
  dependencies = [
3153
+ "proc-macro2 1.0.63",
3154
+ "quote 1.0.29",
3155
+ "syn 2.0.22",
3156
  ]
3157
 
3158
  [[package]]
 
3162
  checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
3163
  dependencies = [
3164
  "native-tls",
3165
+ "tokio 1.29.1",
3166
  ]
3167
 
3168
  [[package]]
 
3171
  source = "registry+https://github.com/rust-lang/crates.io-index"
3172
  checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351"
3173
  dependencies = [
3174
+ "crossbeam-utils 0.7.2",
3175
  "futures",
3176
  "lazy_static",
3177
  "log",
 
3214
  source = "registry+https://github.com/rust-lang/crates.io-index"
3215
  checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89"
3216
  dependencies = [
3217
+ "crossbeam-deque 0.7.4",
3218
  "crossbeam-queue",
3219
+ "crossbeam-utils 0.7.2",
3220
  "futures",
3221
  "lazy_static",
3222
  "log",
 
3231
  source = "registry+https://github.com/rust-lang/crates.io-index"
3232
  checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296"
3233
  dependencies = [
3234
+ "crossbeam-utils 0.7.2",
3235
  "futures",
3236
  "slab",
3237
  "tokio-executor",
 
3247
  "futures-core",
3248
  "futures-sink",
3249
  "pin-project-lite",
3250
+ "tokio 1.29.1",
3251
  "tracing",
3252
  ]
3253
 
 
3441
  "try-lock",
3442
  ]
3443
 
 
 
 
 
 
 
3444
  [[package]]
3445
  name = "wasi"
3446
  version = "0.10.0+wasi-snapshot-preview1"
 
3472
  "bumpalo",
3473
  "log",
3474
  "once_cell",
3475
+ "proc-macro2 1.0.63",
3476
+ "quote 1.0.29",
3477
+ "syn 2.0.22",
3478
  "wasm-bindgen-shared",
3479
  ]
3480
 
 
3496
  source = "registry+https://github.com/rust-lang/crates.io-index"
3497
  checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
3498
  dependencies = [
3499
+ "quote 1.0.29",
3500
  "wasm-bindgen-macro-support",
3501
  ]
3502
 
 
3506
  source = "registry+https://github.com/rust-lang/crates.io-index"
3507
  checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
3508
  dependencies = [
3509
+ "proc-macro2 1.0.63",
3510
+ "quote 1.0.29",
3511
+ "syn 2.0.22",
3512
  "wasm-bindgen-backend",
3513
  "wasm-bindgen-shared",
3514
  ]
 
3531
 
3532
  [[package]]
3533
  name = "websurfx"
3534
+ version = "0.13.7"
3535
  dependencies = [
3536
  "actix-files",
3537
  "actix-web",
3538
+ "criterion",
3539
  "env_logger",
3540
  "error-stack",
3541
  "fake-useragent",
 
3551
  "scraper",
3552
  "serde",
3553
  "serde_json",
3554
+ "tokio 1.29.1",
3555
  ]
3556
 
3557
  [[package]]
 
3623
 
3624
  [[package]]
3625
  name = "windows-targets"
3626
+ version = "0.48.1"
3627
  source = "registry+https://github.com/rust-lang/crates.io-index"
3628
+ checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
3629
  dependencies = [
3630
  "windows_aarch64_gnullvm 0.48.0",
3631
  "windows_aarch64_msvc 0.48.0",
Cargo.toml CHANGED
@@ -1,6 +1,6 @@
1
  [package]
2
  name = "websurfx"
3
- version = "0.13.1"
4
  edition = "2021"
5
  description = "An open-source alternative to Searx that provides clean, ad-free, and organic results with incredible speed while keeping privacy and security in mind."
6
  repository = "https://github.com/neon-mmd/websurfx"
@@ -27,6 +27,7 @@ error-stack = {version="0.3.1"}
27
 
28
  [dev-dependencies]
29
  rusty-hook = "^0.11.2"
 
30
 
31
  [profile.dev]
32
  opt-level = 0
 
1
  [package]
2
  name = "websurfx"
3
+ version = "0.13.7"
4
  edition = "2021"
5
  description = "An open-source alternative to Searx that provides clean, ad-free, and organic results with incredible speed while keeping privacy and security in mind."
6
  repository = "https://github.com/neon-mmd/websurfx"
 
27
 
28
  [dev-dependencies]
29
  rusty-hook = "^0.11.2"
30
+ criterion = "0.5.1"
31
 
32
  [profile.dev]
33
  opt-level = 0
PULL_REQUEST_TEMPLATE.md CHANGED
@@ -16,7 +16,7 @@
16
 
17
  ## Author's checklist
18
 
19
- <!-- additional notes for reviewiers -->
20
 
21
  ## Related issues
22
 
 
16
 
17
  ## Author's checklist
18
 
19
+ <!-- additional notes for reviewers -->
20
 
21
  ## Related issues
22
 
README.md CHANGED
@@ -59,7 +59,7 @@
59
  - **Community**
60
  - [📊 System Requirements](#system-requirements-)
61
  - [🗨️ FAQ (Frequently Asked Questions)](#faq-frequently-asked-questions-)
62
- - [📣 More Contributers Wanted](#more-contributers-wanted-)
63
  - [💖 Supporting Websurfx](#supporting-websurfx-)
64
  - [📘 Documentation](#documentation-)
65
  - [🛣️ Roadmap](#roadmap-)
@@ -165,7 +165,7 @@ Websurfx is based on Rust due to its memory safety features, which prevents vuln
165
 
166
  **[⬆️ Back to Top](#--)**
167
 
168
- # More Contributers Wanted 📣
169
 
170
  We are looking for more willing contributors to help grow this project. For more information on how you can contribute, check out the [project board](https://github.com/neon-mmd/websurfx/projects?query=is%3Aopen) and the [CONTRIBUTING.md](CONTRIBUTING.md) file for guidelines and rules for making contributions.
171
 
 
59
  - **Community**
60
  - [📊 System Requirements](#system-requirements-)
61
  - [🗨️ FAQ (Frequently Asked Questions)](#faq-frequently-asked-questions-)
62
+ - [📣 More Contributors Wanted](#more-contributors-wanted-)
63
  - [💖 Supporting Websurfx](#supporting-websurfx-)
64
  - [📘 Documentation](#documentation-)
65
  - [🛣️ Roadmap](#roadmap-)
 
165
 
166
  **[⬆️ Back to Top](#--)**
167
 
168
+ # More Contributors Wanted 📣
169
 
170
  We are looking for more willing contributors to help grow this project. For more information on how you can contribute, check out the [project board](https://github.com/neon-mmd/websurfx/projects?query=is%3Aopen) and the [CONTRIBUTING.md](CONTRIBUTING.md) file for guidelines and rules for making contributions.
171
 
public/static/pagination.js CHANGED
@@ -30,8 +30,8 @@ function navigate_backward() {
30
  let page = parseInt(searchParams.get('page'));
31
 
32
  if (isNaN(page)) {
33
- page = 1;
34
- } else if (page > 1) {
35
  page--;
36
  }
37
 
 
30
  let page = parseInt(searchParams.get('page'));
31
 
32
  if (isNaN(page)) {
33
+ page = 0;
34
+ } else if (page > 0) {
35
  page--;
36
  }
37
 
src/config_parser/parser.rs CHANGED
@@ -24,46 +24,35 @@ pub struct Config {
24
  pub binding_ip_addr: String,
25
  pub style: Style,
26
  pub redis_connection_url: String,
27
- pub aggregator: AggreatorConfig,
28
  pub logging: bool,
29
  pub debug: bool,
30
  }
31
 
32
  /// Configuration options for the aggregator.
33
  #[derive(Clone)]
34
- pub struct AggreatorConfig {
35
  /// Whether to introduce a random delay before sending the request to the search engine.
36
  pub random_delay: bool,
37
  }
38
 
39
  impl Config {
40
  /// A function which parses the config.lua file and puts all the parsed options in the newly
41
- /// contructed Config struct and returns it.
42
  ///
43
  /// # Error
44
  ///
45
  /// Returns a lua parse error if parsing of the config.lua file fails or has a syntax error
46
- /// or io error if the config.lua file doesn't exists otherwise it returns a newly contructed
47
  /// Config struct with all the parsed config options from the parsed config file.
48
  pub fn parse() -> Result<Self, Box<dyn std::error::Error>> {
49
  Lua::new().context(|context| -> Result<Self, Box<dyn std::error::Error>> {
50
  let globals = context.globals();
51
 
52
  context
53
- .load(&fs::read_to_string(
54
- Config::handle_different_config_file_path()?,
55
- )?)
56
  .exec()?;
57
 
58
- let production_use = globals.get::<_, bool>("production_use")?;
59
- let aggregator_config = if production_use {
60
- AggreatorConfig { random_delay: true }
61
- } else {
62
- AggreatorConfig {
63
- random_delay: false,
64
- }
65
- };
66
-
67
  Ok(Config {
68
  port: globals.get::<_, u16>("port")?,
69
  binding_ip_addr: globals.get::<_, String>("binding_ip_addr")?,
@@ -72,7 +61,9 @@ impl Config {
72
  globals.get::<_, String>("colorscheme")?,
73
  ),
74
  redis_connection_url: globals.get::<_, String>("redis_connection_url")?,
75
- aggregator: aggregator_config,
 
 
76
  logging: globals.get::<_, bool>("logging")?,
77
  debug: globals.get::<_, bool>("debug")?,
78
  })
@@ -90,35 +81,37 @@ impl Config {
90
  /// one (3).
91
  /// 3. `websurfx/` (under project folder ( or codebase in other words)) if it is not present
92
  /// here then it returns an error as mentioned above.
93
- fn handle_different_config_file_path() -> Result<String, Box<dyn std::error::Error>> {
94
- if Path::new(
95
- format!(
96
- "{}/.config/{}/config.lua",
97
- std::env::var("HOME").unwrap(),
98
- COMMON_DIRECTORY_NAME
99
- )
100
- .as_str(),
101
- )
102
- .exists()
103
- {
104
- Ok(format!(
105
  "{}/.config/{}/{}",
106
  std::env::var("HOME").unwrap(),
107
  COMMON_DIRECTORY_NAME,
108
  CONFIG_FILE_NAME
109
- ))
110
- } else if Path::new(
111
- format!("/etc/xdg/{}/{}", COMMON_DIRECTORY_NAME, CONFIG_FILE_NAME).as_str(),
112
- )
113
- .exists()
114
- {
115
- Ok("/etc/xdg/websurfx/config.lua".to_string())
116
- } else if Path::new(format!("./{}/{}", COMMON_DIRECTORY_NAME, CONFIG_FILE_NAME).as_str())
117
  .exists()
118
  {
119
- Ok("./websurfx/config.lua".to_string())
120
- } else {
121
- Err("Config file not found!!".to_string().into())
122
  }
 
 
 
 
 
 
 
 
 
123
  }
124
  }
 
24
  pub binding_ip_addr: String,
25
  pub style: Style,
26
  pub redis_connection_url: String,
27
+ pub aggregator: AggregatorConfig,
28
  pub logging: bool,
29
  pub debug: bool,
30
  }
31
 
32
  /// Configuration options for the aggregator.
33
  #[derive(Clone)]
34
+ pub struct AggregatorConfig {
35
  /// Whether to introduce a random delay before sending the request to the search engine.
36
  pub random_delay: bool,
37
  }
38
 
39
  impl Config {
40
  /// A function which parses the config.lua file and puts all the parsed options in the newly
41
+ /// constructed Config struct and returns it.
42
  ///
43
  /// # Error
44
  ///
45
  /// Returns a lua parse error if parsing of the config.lua file fails or has a syntax error
46
+ /// or io error if the config.lua file doesn't exists otherwise it returns a newly constructed
47
  /// Config struct with all the parsed config options from the parsed config file.
48
  pub fn parse() -> Result<Self, Box<dyn std::error::Error>> {
49
  Lua::new().context(|context| -> Result<Self, Box<dyn std::error::Error>> {
50
  let globals = context.globals();
51
 
52
  context
53
+ .load(&fs::read_to_string(Config::get_config_path()?)?)
 
 
54
  .exec()?;
55
 
 
 
 
 
 
 
 
 
 
56
  Ok(Config {
57
  port: globals.get::<_, u16>("port")?,
58
  binding_ip_addr: globals.get::<_, String>("binding_ip_addr")?,
 
61
  globals.get::<_, String>("colorscheme")?,
62
  ),
63
  redis_connection_url: globals.get::<_, String>("redis_connection_url")?,
64
+ aggregator: AggregatorConfig {
65
+ random_delay: globals.get::<_, bool>("production_use")?,
66
+ },
67
  logging: globals.get::<_, bool>("logging")?,
68
  debug: globals.get::<_, bool>("debug")?,
69
  })
 
81
  /// one (3).
82
  /// 3. `websurfx/` (under project folder ( or codebase in other words)) if it is not present
83
  /// here then it returns an error as mentioned above.
84
+ fn get_config_path() -> Result<String, Box<dyn std::error::Error>> {
85
+ // check user config
86
+
87
+ let path = format!(
88
+ "{}/.config/{}/config.lua",
89
+ std::env::var("HOME").unwrap(),
90
+ COMMON_DIRECTORY_NAME
91
+ );
92
+ if Path::new(path.as_str()).exists() {
93
+ return Ok(format!(
 
 
94
  "{}/.config/{}/{}",
95
  std::env::var("HOME").unwrap(),
96
  COMMON_DIRECTORY_NAME,
97
  CONFIG_FILE_NAME
98
+ ));
99
+ }
100
+
101
+ // look for config in /etc/xdg
102
+ if Path::new(format!("/etc/xdg/{}/{}", COMMON_DIRECTORY_NAME, CONFIG_FILE_NAME).as_str())
 
 
 
103
  .exists()
104
  {
105
+ return Ok("/etc/xdg/websurfx/config.lua".to_string());
 
 
106
  }
107
+
108
+ // use dev config
109
+ if Path::new(format!("./{}/{}", COMMON_DIRECTORY_NAME, CONFIG_FILE_NAME).as_str()).exists()
110
+ {
111
+ return Ok("./websurfx/config.lua".to_string());
112
+ }
113
+
114
+ // if no of the configs above exist, return error
115
+ Err("Config file not found!!".to_string().into())
116
  }
117
  }
src/config_parser/parser_models.rs CHANGED
@@ -1,5 +1,5 @@
1
  //! This module provides public models for handling, storing and serializing parsed config file
2
- //! options from config.lua by grouping them togather.
3
 
4
  use serde::{Deserialize, Serialize};
5
 
 
1
  //! This module provides public models for handling, storing and serializing parsed config file
2
+ //! options from config.lua by grouping them together.
3
 
4
  use serde::{Deserialize, Serialize};
5
 
src/engines/duckduckgo.rs CHANGED
@@ -36,7 +36,7 @@ pub async fn results(
36
  user_agent: &str,
37
  ) -> Result<HashMap<String, RawSearchResult>, EngineError> {
38
  // Page number can be missing or empty string and so appropriate handling is required
39
- // so that upstream server recieves valid page number.
40
  let url: String = match page {
41
  1 => {
42
  format!("https://html.duckduckgo.com/html/?q={query}&s=&dc=&v=1&o=json&api=/d.js")
@@ -86,7 +86,7 @@ pub async fn results(
86
  let results: String = reqwest::Client::new()
87
  .get(url)
88
  .timeout(Duration::from_secs(5))
89
- .headers(header_map) // add spoofed headers to emulate human behaviour
90
  .send()
91
  .await
92
  .into_report()
 
36
  user_agent: &str,
37
  ) -> Result<HashMap<String, RawSearchResult>, EngineError> {
38
  // Page number can be missing or empty string and so appropriate handling is required
39
+ // so that upstream server receives valid page number.
40
  let url: String = match page {
41
  1 => {
42
  format!("https://html.duckduckgo.com/html/?q={query}&s=&dc=&v=1&o=json&api=/d.js")
 
86
  let results: String = reqwest::Client::new()
87
  .get(url)
88
  .timeout(Duration::from_secs(5))
89
+ .headers(header_map) // add spoofed headers to emulate human behavior
90
  .send()
91
  .await
92
  .into_report()
src/engines/engine_models.rs CHANGED
@@ -13,7 +13,7 @@ use std::fmt;
13
  /// search engines.
14
  /// * `UnexpectedError` - This variant handles all the errors which are unexpected or occur rarely
15
  /// and are errors mostly related to failure in initialization of HeaderMap, Selector errors and
16
- /// all other errors occuring within the code handling the `upstream search engines`.
17
  #[derive(Debug)]
18
  pub enum EngineError {
19
  EmptyResultSet,
 
13
  /// search engines.
14
  /// * `UnexpectedError` - This variant handles all the errors which are unexpected or occur rarely
15
  /// and are errors mostly related to failure in initialization of HeaderMap, Selector errors and
16
+ /// all other errors occurring within the code handling the `upstream search engines`.
17
  #[derive(Debug)]
18
  pub enum EngineError {
19
  EmptyResultSet,
src/search_results_handler/aggregator.rs CHANGED
@@ -17,7 +17,7 @@ use crate::engines::{duckduckgo, searx};
17
  /// then removes duplicate results and if two results are found to be from two or more engines
18
  /// then puts their names together to show the results are fetched from these upstream engines
19
  /// and then removes all data from the HashMap and puts into a struct of all results aggregated
20
- /// into a vector and also adds the query used into the struct this is neccessory because
21
  /// otherwise the search bar in search remains empty if searched from the query url
22
  ///
23
  /// # Example:
 
17
  /// then removes duplicate results and if two results are found to be from two or more engines
18
  /// then puts their names together to show the results are fetched from these upstream engines
19
  /// and then removes all data from the HashMap and puts into a struct of all results aggregated
20
+ /// into a vector and also adds the query used into the struct this is necessary because
21
  /// otherwise the search bar in search remains empty if searched from the query url
22
  ///
23
  /// # Example:
src/server/routes.rs CHANGED
@@ -1,5 +1,5 @@
1
  //! This module provides the functionality to handle different routes of the `websurfx`
2
- //! meta search engine website and provide approriate response to each route/page
3
  //! when requested.
4
 
5
  use std::fs::read_to_string;
@@ -82,40 +82,16 @@ pub async fn search(
82
  .insert_header(("location", "/"))
83
  .finish())
84
  } else {
85
- let page_url: String; // Declare the page_url variable without initializing it
86
-
87
- // ...
88
-
89
- let page = match params.page {
90
- Some(page_number) => {
91
- if page_number <= 1 {
92
- page_url = format!(
93
- "http://{}:{}/search?q={}&page={}",
94
- config.binding_ip_addr, config.port, query, 1
95
- );
96
- 1
97
- } else {
98
- page_url = format!(
99
- "http://{}:{}/search?q={}&page={}",
100
- config.binding_ip_addr, config.port, query, page_number
101
- );
102
-
103
- page_number
104
- }
105
- }
106
- None => {
107
- page_url = format!(
108
- "http://{}:{}{}&page={}",
109
- config.binding_ip_addr,
110
- config.port,
111
- req.uri(),
112
- 1
113
- );
114
-
115
- 1
116
- }
117
  };
118
 
 
 
 
 
 
119
  // fetch the cached results json.
120
  let cached_results_json = redis_cache.cached_results_json(&page_url);
121
  // check if fetched results was indeed fetched or it was an error and if so
 
1
  //! This module provides the functionality to handle different routes of the `websurfx`
2
+ //! meta search engine website and provide appropriate response to each route/page
3
  //! when requested.
4
 
5
  use std::fs::read_to_string;
 
82
  .insert_header(("location", "/"))
83
  .finish())
84
  } else {
85
+ let page = match &params.page {
86
+ Some(page) => *page,
87
+ None => 0,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
88
  };
89
 
90
+ let page_url = format!(
91
+ "http://{}:{}/search?q={}&page={}",
92
+ config.binding_ip_addr, config.port, query, page
93
+ );
94
+
95
  // fetch the cached results json.
96
  let cached_results_json = redis_cache.cached_results_json(&page_url);
97
  // check if fetched results was indeed fetched or it was an error and if so