Spaces:
Runtime error
Runtime error
Merge branch 'rolling' into contributors-list-automation-ci
Browse files- .github/workflows/contributors.yml +1 -1
- Cargo.lock +84 -87
- Cargo.toml +1 -1
- docs/configuration.md +6 -1
- docs/installation.md +10 -8
- src/bin/websurfx.rs +1 -1
- src/config_parser/parser.rs +2 -0
- src/search_results_handler/aggregator.rs +2 -1
- src/server/routes.rs +1 -1
- websurfx/config.lua +1 -0
.github/workflows/contributors.yml
CHANGED
@@ -44,4 +44,4 @@ jobs:
|
|
44 |
delete-branch: true
|
45 |
title: 'chore: update contributors-list'
|
46 |
body: |
|
47 |
-
Automated update to `images/contributors_list.svg`
|
|
|
44 |
delete-branch: true
|
45 |
title: 'chore: update contributors-list'
|
46 |
body: |
|
47 |
+
Automated update to `images/contributors_list.svg`
|
Cargo.lock
CHANGED
@@ -14,7 +14,7 @@ dependencies = [
|
|
14 |
"futures-sink",
|
15 |
"memchr",
|
16 |
"pin-project-lite",
|
17 |
-
"tokio 1.28.
|
18 |
"tokio-util",
|
19 |
"tracing",
|
20 |
]
|
@@ -53,7 +53,7 @@ dependencies = [
|
|
53 |
"actix-service",
|
54 |
"actix-utils",
|
55 |
"ahash 0.8.3",
|
56 |
-
"base64 0.21.
|
57 |
"bitflags",
|
58 |
"brotli",
|
59 |
"bytes 1.4.0",
|
@@ -75,7 +75,7 @@ dependencies = [
|
|
75 |
"rand 0.8.5",
|
76 |
"sha1",
|
77 |
"smallvec 1.10.0",
|
78 |
-
"tokio 1.28.
|
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.
|
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.
|
115 |
]
|
116 |
|
117 |
[[package]]
|
@@ -125,10 +125,10 @@ dependencies = [
|
|
125 |
"actix-utils",
|
126 |
"futures-core",
|
127 |
"futures-util",
|
128 |
-
"mio 0.8.
|
129 |
"num_cpus",
|
130 |
"socket2",
|
131 |
-
"tokio 1.28.
|
132 |
"tracing",
|
133 |
]
|
134 |
|
@@ -201,8 +201,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
201 |
checksum = "2262160a7ae29e3415554a3f1fc04c764b1540c116aa524683208078b7a75bc9"
|
202 |
dependencies = [
|
203 |
"actix-router",
|
204 |
-
"proc-macro2 1.0.
|
205 |
-
"quote 1.0.
|
206 |
"syn 1.0.109",
|
207 |
]
|
208 |
|
@@ -315,9 +315,9 @@ dependencies = [
|
|
315 |
|
316 |
[[package]]
|
317 |
name = "base64"
|
318 |
-
version = "0.21.
|
319 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
320 |
-
checksum = "
|
321 |
|
322 |
[[package]]
|
323 |
name = "bit-set"
|
@@ -605,8 +605,8 @@ dependencies = [
|
|
605 |
"itoa 1.0.6",
|
606 |
"matches",
|
607 |
"phf 0.10.1",
|
608 |
-
"proc-macro2 1.0.
|
609 |
-
"quote 1.0.
|
610 |
"smallvec 1.10.0",
|
611 |
"syn 1.0.109",
|
612 |
]
|
@@ -617,7 +617,7 @@ version = "0.6.0"
|
|
617 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
618 |
checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e"
|
619 |
dependencies = [
|
620 |
-
"quote 1.0.
|
621 |
"syn 1.0.109",
|
622 |
]
|
623 |
|
@@ -628,8 +628,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
628 |
checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
|
629 |
dependencies = [
|
630 |
"convert_case",
|
631 |
-
"proc-macro2 1.0.
|
632 |
-
"quote 1.0.
|
633 |
"rustc_version 0.4.0",
|
634 |
"syn 1.0.109",
|
635 |
]
|
@@ -730,8 +730,8 @@ version = "0.1.8"
|
|
730 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
731 |
checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
|
732 |
dependencies = [
|
733 |
-
"proc-macro2 1.0.
|
734 |
-
"quote 1.0.
|
735 |
"syn 1.0.109",
|
736 |
"synstructure",
|
737 |
]
|
@@ -971,7 +971,7 @@ dependencies = [
|
|
971 |
"http 0.2.9",
|
972 |
"indexmap",
|
973 |
"slab",
|
974 |
-
"tokio 1.28.
|
975 |
"tokio-util",
|
976 |
"tracing",
|
977 |
]
|
@@ -1035,8 +1035,8 @@ dependencies = [
|
|
1035 |
"log",
|
1036 |
"mac",
|
1037 |
"markup5ever 0.11.0",
|
1038 |
-
"proc-macro2 1.0.
|
1039 |
-
"quote 1.0.
|
1040 |
"syn 1.0.109",
|
1041 |
]
|
1042 |
|
@@ -1157,7 +1157,7 @@ dependencies = [
|
|
1157 |
"itoa 1.0.6",
|
1158 |
"pin-project-lite",
|
1159 |
"socket2",
|
1160 |
-
"tokio 1.28.
|
1161 |
"tower-service",
|
1162 |
"tracing",
|
1163 |
"want 0.3.0",
|
@@ -1185,7 +1185,7 @@ dependencies = [
|
|
1185 |
"bytes 1.4.0",
|
1186 |
"hyper 0.14.26",
|
1187 |
"native-tls",
|
1188 |
-
"tokio 1.28.
|
1189 |
"tokio-native-tls",
|
1190 |
]
|
1191 |
|
@@ -1381,12 +1381,9 @@ dependencies = [
|
|
1381 |
|
1382 |
[[package]]
|
1383 |
name = "log"
|
1384 |
-
version = "0.4.
|
1385 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1386 |
-
checksum = "
|
1387 |
-
dependencies = [
|
1388 |
-
"cfg-if 1.0.0",
|
1389 |
-
]
|
1390 |
|
1391 |
[[package]]
|
1392 |
name = "mac"
|
@@ -1513,14 +1510,14 @@ dependencies = [
|
|
1513 |
|
1514 |
[[package]]
|
1515 |
name = "mio"
|
1516 |
-
version = "0.8.
|
1517 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1518 |
-
checksum = "
|
1519 |
dependencies = [
|
1520 |
"libc",
|
1521 |
"log",
|
1522 |
"wasi 0.11.0+wasi-snapshot-preview1",
|
1523 |
-
"windows-sys 0.
|
1524 |
]
|
1525 |
|
1526 |
[[package]]
|
@@ -1606,9 +1603,9 @@ dependencies = [
|
|
1606 |
|
1607 |
[[package]]
|
1608 |
name = "once_cell"
|
1609 |
-
version = "1.17.
|
1610 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1611 |
-
checksum = "
|
1612 |
|
1613 |
[[package]]
|
1614 |
name = "openssl"
|
@@ -1631,9 +1628,9 @@ version = "0.1.1"
|
|
1631 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1632 |
checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
|
1633 |
dependencies = [
|
1634 |
-
"proc-macro2 1.0.
|
1635 |
-
"quote 1.0.
|
1636 |
-
"syn 2.0.
|
1637 |
]
|
1638 |
|
1639 |
[[package]]
|
@@ -1749,9 +1746,9 @@ checksum = "6c435bf1076437b851ebc8edc3a18442796b30f1728ffea6262d59bbe28b077e"
|
|
1749 |
dependencies = [
|
1750 |
"pest",
|
1751 |
"pest_meta",
|
1752 |
-
"proc-macro2 1.0.
|
1753 |
-
"quote 1.0.
|
1754 |
-
"syn 2.0.
|
1755 |
]
|
1756 |
|
1757 |
[[package]]
|
@@ -1863,8 +1860,8 @@ dependencies = [
|
|
1863 |
"phf_generator 0.10.0",
|
1864 |
"phf_shared 0.10.0",
|
1865 |
"proc-macro-hack",
|
1866 |
-
"proc-macro2 1.0.
|
1867 |
-
"quote 1.0.
|
1868 |
"syn 1.0.109",
|
1869 |
]
|
1870 |
|
@@ -1942,9 +1939,9 @@ dependencies = [
|
|
1942 |
|
1943 |
[[package]]
|
1944 |
name = "proc-macro2"
|
1945 |
-
version = "1.0.
|
1946 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1947 |
-
checksum = "
|
1948 |
dependencies = [
|
1949 |
"unicode-ident",
|
1950 |
]
|
@@ -1970,11 +1967,11 @@ dependencies = [
|
|
1970 |
|
1971 |
[[package]]
|
1972 |
name = "quote"
|
1973 |
-
version = "1.0.
|
1974 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1975 |
-
checksum = "
|
1976 |
dependencies = [
|
1977 |
-
"proc-macro2 1.0.
|
1978 |
]
|
1979 |
|
1980 |
[[package]]
|
@@ -2213,9 +2210,9 @@ dependencies = [
|
|
2213 |
|
2214 |
[[package]]
|
2215 |
name = "regex"
|
2216 |
-
version = "1.8.
|
2217 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2218 |
-
checksum = "
|
2219 |
dependencies = [
|
2220 |
"aho-corasick",
|
2221 |
"memchr",
|
@@ -2268,7 +2265,7 @@ version = "0.11.18"
|
|
2268 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2269 |
checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55"
|
2270 |
dependencies = [
|
2271 |
-
"base64 0.21.
|
2272 |
"bytes 1.4.0",
|
2273 |
"encoding_rs",
|
2274 |
"futures-core",
|
@@ -2289,7 +2286,7 @@ dependencies = [
|
|
2289 |
"serde",
|
2290 |
"serde_json",
|
2291 |
"serde_urlencoded 0.7.1",
|
2292 |
-
"tokio 1.28.
|
2293 |
"tokio-native-tls",
|
2294 |
"tower-service",
|
2295 |
"url 2.3.1",
|
@@ -2495,9 +2492,9 @@ version = "1.0.163"
|
|
2495 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2496 |
checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e"
|
2497 |
dependencies = [
|
2498 |
-
"proc-macro2 1.0.
|
2499 |
-
"quote 1.0.
|
2500 |
-
"syn 2.0.
|
2501 |
]
|
2502 |
|
2503 |
[[package]]
|
@@ -2680,8 +2677,8 @@ checksum = "f0f45ed1b65bf9a4bf2f7b7dc59212d1926e9eaf00fa998988e420fd124467c6"
|
|
2680 |
dependencies = [
|
2681 |
"phf_generator 0.7.24",
|
2682 |
"phf_shared 0.7.24",
|
2683 |
-
"proc-macro2 1.0.
|
2684 |
-
"quote 1.0.
|
2685 |
"string_cache_shared",
|
2686 |
]
|
2687 |
|
@@ -2693,8 +2690,8 @@ checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988"
|
|
2693 |
dependencies = [
|
2694 |
"phf_generator 0.10.0",
|
2695 |
"phf_shared 0.10.0",
|
2696 |
-
"proc-macro2 1.0.
|
2697 |
-
"quote 1.0.
|
2698 |
]
|
2699 |
|
2700 |
[[package]]
|
@@ -2720,19 +2717,19 @@ version = "1.0.109"
|
|
2720 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2721 |
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
|
2722 |
dependencies = [
|
2723 |
-
"proc-macro2 1.0.
|
2724 |
-
"quote 1.0.
|
2725 |
"unicode-ident",
|
2726 |
]
|
2727 |
|
2728 |
[[package]]
|
2729 |
name = "syn"
|
2730 |
-
version = "2.0.
|
2731 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2732 |
-
checksum = "
|
2733 |
dependencies = [
|
2734 |
-
"proc-macro2 1.0.
|
2735 |
-
"quote 1.0.
|
2736 |
"unicode-ident",
|
2737 |
]
|
2738 |
|
@@ -2742,8 +2739,8 @@ version = "0.12.6"
|
|
2742 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2743 |
checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
|
2744 |
dependencies = [
|
2745 |
-
"proc-macro2 1.0.
|
2746 |
-
"quote 1.0.
|
2747 |
"syn 1.0.109",
|
2748 |
"unicode-xid 0.2.4",
|
2749 |
]
|
@@ -2796,9 +2793,9 @@ version = "1.0.40"
|
|
2796 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2797 |
checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
|
2798 |
dependencies = [
|
2799 |
-
"proc-macro2 1.0.
|
2800 |
-
"quote 1.0.
|
2801 |
-
"syn 2.0.
|
2802 |
]
|
2803 |
|
2804 |
[[package]]
|
@@ -2875,14 +2872,14 @@ dependencies = [
|
|
2875 |
|
2876 |
[[package]]
|
2877 |
name = "tokio"
|
2878 |
-
version = "1.28.
|
2879 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2880 |
-
checksum = "
|
2881 |
dependencies = [
|
2882 |
"autocfg 1.1.0",
|
2883 |
"bytes 1.4.0",
|
2884 |
"libc",
|
2885 |
-
"mio 0.8.
|
2886 |
"num_cpus",
|
2887 |
"parking_lot 0.12.1",
|
2888 |
"pin-project-lite",
|
@@ -2940,9 +2937,9 @@ version = "2.1.0"
|
|
2940 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2941 |
checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
|
2942 |
dependencies = [
|
2943 |
-
"proc-macro2 1.0.
|
2944 |
-
"quote 1.0.
|
2945 |
-
"syn 2.0.
|
2946 |
]
|
2947 |
|
2948 |
[[package]]
|
@@ -2952,7 +2949,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2952 |
checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
|
2953 |
dependencies = [
|
2954 |
"native-tls",
|
2955 |
-
"tokio 1.28.
|
2956 |
]
|
2957 |
|
2958 |
[[package]]
|
@@ -3037,7 +3034,7 @@ dependencies = [
|
|
3037 |
"futures-core",
|
3038 |
"futures-sink",
|
3039 |
"pin-project-lite",
|
3040 |
-
"tokio 1.28.
|
3041 |
"tracing",
|
3042 |
]
|
3043 |
|
@@ -3112,9 +3109,9 @@ checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
|
|
3112 |
|
3113 |
[[package]]
|
3114 |
name = "unicode-ident"
|
3115 |
-
version = "1.0.
|
3116 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3117 |
-
checksum = "
|
3118 |
|
3119 |
[[package]]
|
3120 |
name = "unicode-normalization"
|
@@ -3260,9 +3257,9 @@ dependencies = [
|
|
3260 |
"bumpalo",
|
3261 |
"log",
|
3262 |
"once_cell",
|
3263 |
-
"proc-macro2 1.0.
|
3264 |
-
"quote 1.0.
|
3265 |
-
"syn 2.0.
|
3266 |
"wasm-bindgen-shared",
|
3267 |
]
|
3268 |
|
@@ -3284,7 +3281,7 @@ version = "0.2.86"
|
|
3284 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3285 |
checksum = "14d6b024f1a526bb0234f52840389927257beb670610081360e5a03c5df9c258"
|
3286 |
dependencies = [
|
3287 |
-
"quote 1.0.
|
3288 |
"wasm-bindgen-macro-support",
|
3289 |
]
|
3290 |
|
@@ -3294,9 +3291,9 @@ version = "0.2.86"
|
|
3294 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3295 |
checksum = "e128beba882dd1eb6200e1dc92ae6c5dbaa4311aa7bb211ca035779e5efc39f8"
|
3296 |
dependencies = [
|
3297 |
-
"proc-macro2 1.0.
|
3298 |
-
"quote 1.0.
|
3299 |
-
"syn 2.0.
|
3300 |
"wasm-bindgen-backend",
|
3301 |
"wasm-bindgen-shared",
|
3302 |
]
|
@@ -3319,7 +3316,7 @@ dependencies = [
|
|
3319 |
|
3320 |
[[package]]
|
3321 |
name = "websurfx"
|
3322 |
-
version = "0.
|
3323 |
dependencies = [
|
3324 |
"actix-files",
|
3325 |
"actix-web",
|
@@ -3336,7 +3333,7 @@ dependencies = [
|
|
3336 |
"scraper",
|
3337 |
"serde",
|
3338 |
"serde_json",
|
3339 |
-
"tokio 1.28.
|
3340 |
]
|
3341 |
|
3342 |
[[package]]
|
|
|
14 |
"futures-sink",
|
15 |
"memchr",
|
16 |
"pin-project-lite",
|
17 |
+
"tokio 1.28.2",
|
18 |
"tokio-util",
|
19 |
"tracing",
|
20 |
]
|
|
|
53 |
"actix-service",
|
54 |
"actix-utils",
|
55 |
"ahash 0.8.3",
|
56 |
+
"base64 0.21.2",
|
57 |
"bitflags",
|
58 |
"brotli",
|
59 |
"bytes 1.4.0",
|
|
|
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 |
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 |
checksum = "15265b6b8e2347670eb363c47fc8c75208b4a4994b27192f345fcbe707804f3e"
|
112 |
dependencies = [
|
113 |
"futures-core",
|
114 |
+
"tokio 1.28.2",
|
115 |
]
|
116 |
|
117 |
[[package]]
|
|
|
125 |
"actix-utils",
|
126 |
"futures-core",
|
127 |
"futures-util",
|
128 |
+
"mio 0.8.7",
|
129 |
"num_cpus",
|
130 |
"socket2",
|
131 |
+
"tokio 1.28.2",
|
132 |
"tracing",
|
133 |
]
|
134 |
|
|
|
201 |
checksum = "2262160a7ae29e3415554a3f1fc04c764b1540c116aa524683208078b7a75bc9"
|
202 |
dependencies = [
|
203 |
"actix-router",
|
204 |
+
"proc-macro2 1.0.59",
|
205 |
+
"quote 1.0.28",
|
206 |
"syn 1.0.109",
|
207 |
]
|
208 |
|
|
|
315 |
|
316 |
[[package]]
|
317 |
name = "base64"
|
318 |
+
version = "0.21.2"
|
319 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
320 |
+
checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d"
|
321 |
|
322 |
[[package]]
|
323 |
name = "bit-set"
|
|
|
605 |
"itoa 1.0.6",
|
606 |
"matches",
|
607 |
"phf 0.10.1",
|
608 |
+
"proc-macro2 1.0.59",
|
609 |
+
"quote 1.0.28",
|
610 |
"smallvec 1.10.0",
|
611 |
"syn 1.0.109",
|
612 |
]
|
|
|
617 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
618 |
checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e"
|
619 |
dependencies = [
|
620 |
+
"quote 1.0.28",
|
621 |
"syn 1.0.109",
|
622 |
]
|
623 |
|
|
|
628 |
checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
|
629 |
dependencies = [
|
630 |
"convert_case",
|
631 |
+
"proc-macro2 1.0.59",
|
632 |
+
"quote 1.0.28",
|
633 |
"rustc_version 0.4.0",
|
634 |
"syn 1.0.109",
|
635 |
]
|
|
|
730 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
731 |
checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
|
732 |
dependencies = [
|
733 |
+
"proc-macro2 1.0.59",
|
734 |
+
"quote 1.0.28",
|
735 |
"syn 1.0.109",
|
736 |
"synstructure",
|
737 |
]
|
|
|
971 |
"http 0.2.9",
|
972 |
"indexmap",
|
973 |
"slab",
|
974 |
+
"tokio 1.28.2",
|
975 |
"tokio-util",
|
976 |
"tracing",
|
977 |
]
|
|
|
1035 |
"log",
|
1036 |
"mac",
|
1037 |
"markup5ever 0.11.0",
|
1038 |
+
"proc-macro2 1.0.59",
|
1039 |
+
"quote 1.0.28",
|
1040 |
"syn 1.0.109",
|
1041 |
]
|
1042 |
|
|
|
1157 |
"itoa 1.0.6",
|
1158 |
"pin-project-lite",
|
1159 |
"socket2",
|
1160 |
+
"tokio 1.28.2",
|
1161 |
"tower-service",
|
1162 |
"tracing",
|
1163 |
"want 0.3.0",
|
|
|
1185 |
"bytes 1.4.0",
|
1186 |
"hyper 0.14.26",
|
1187 |
"native-tls",
|
1188 |
+
"tokio 1.28.2",
|
1189 |
"tokio-native-tls",
|
1190 |
]
|
1191 |
|
|
|
1381 |
|
1382 |
[[package]]
|
1383 |
name = "log"
|
1384 |
+
version = "0.4.18"
|
1385 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1386 |
+
checksum = "518ef76f2f87365916b142844c16d8fefd85039bc5699050210a7778ee1cd1de"
|
|
|
|
|
|
|
1387 |
|
1388 |
[[package]]
|
1389 |
name = "mac"
|
|
|
1510 |
|
1511 |
[[package]]
|
1512 |
name = "mio"
|
1513 |
+
version = "0.8.7"
|
1514 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1515 |
+
checksum = "eebffdb73fe72e917997fad08bdbf31ac50b0fa91cec93e69a0662e4264d454c"
|
1516 |
dependencies = [
|
1517 |
"libc",
|
1518 |
"log",
|
1519 |
"wasi 0.11.0+wasi-snapshot-preview1",
|
1520 |
+
"windows-sys 0.48.0",
|
1521 |
]
|
1522 |
|
1523 |
[[package]]
|
|
|
1603 |
|
1604 |
[[package]]
|
1605 |
name = "once_cell"
|
1606 |
+
version = "1.17.2"
|
1607 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1608 |
+
checksum = "9670a07f94779e00908f3e686eab508878ebb390ba6e604d3a284c00e8d0487b"
|
1609 |
|
1610 |
[[package]]
|
1611 |
name = "openssl"
|
|
|
1628 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1629 |
checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
|
1630 |
dependencies = [
|
1631 |
+
"proc-macro2 1.0.59",
|
1632 |
+
"quote 1.0.28",
|
1633 |
+
"syn 2.0.18",
|
1634 |
]
|
1635 |
|
1636 |
[[package]]
|
|
|
1746 |
dependencies = [
|
1747 |
"pest",
|
1748 |
"pest_meta",
|
1749 |
+
"proc-macro2 1.0.59",
|
1750 |
+
"quote 1.0.28",
|
1751 |
+
"syn 2.0.18",
|
1752 |
]
|
1753 |
|
1754 |
[[package]]
|
|
|
1860 |
"phf_generator 0.10.0",
|
1861 |
"phf_shared 0.10.0",
|
1862 |
"proc-macro-hack",
|
1863 |
+
"proc-macro2 1.0.59",
|
1864 |
+
"quote 1.0.28",
|
1865 |
"syn 1.0.109",
|
1866 |
]
|
1867 |
|
|
|
1939 |
|
1940 |
[[package]]
|
1941 |
name = "proc-macro2"
|
1942 |
+
version = "1.0.59"
|
1943 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1944 |
+
checksum = "6aeca18b86b413c660b781aa319e4e2648a3e6f9eadc9b47e9038e6fe9f3451b"
|
1945 |
dependencies = [
|
1946 |
"unicode-ident",
|
1947 |
]
|
|
|
1967 |
|
1968 |
[[package]]
|
1969 |
name = "quote"
|
1970 |
+
version = "1.0.28"
|
1971 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1972 |
+
checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488"
|
1973 |
dependencies = [
|
1974 |
+
"proc-macro2 1.0.59",
|
1975 |
]
|
1976 |
|
1977 |
[[package]]
|
|
|
2210 |
|
2211 |
[[package]]
|
2212 |
name = "regex"
|
2213 |
+
version = "1.8.3"
|
2214 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2215 |
+
checksum = "81ca098a9821bd52d6b24fd8b10bd081f47d39c22778cafaa75a2857a62c6390"
|
2216 |
dependencies = [
|
2217 |
"aho-corasick",
|
2218 |
"memchr",
|
|
|
2265 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2266 |
checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55"
|
2267 |
dependencies = [
|
2268 |
+
"base64 0.21.2",
|
2269 |
"bytes 1.4.0",
|
2270 |
"encoding_rs",
|
2271 |
"futures-core",
|
|
|
2286 |
"serde",
|
2287 |
"serde_json",
|
2288 |
"serde_urlencoded 0.7.1",
|
2289 |
+
"tokio 1.28.2",
|
2290 |
"tokio-native-tls",
|
2291 |
"tower-service",
|
2292 |
"url 2.3.1",
|
|
|
2492 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2493 |
checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e"
|
2494 |
dependencies = [
|
2495 |
+
"proc-macro2 1.0.59",
|
2496 |
+
"quote 1.0.28",
|
2497 |
+
"syn 2.0.18",
|
2498 |
]
|
2499 |
|
2500 |
[[package]]
|
|
|
2677 |
dependencies = [
|
2678 |
"phf_generator 0.7.24",
|
2679 |
"phf_shared 0.7.24",
|
2680 |
+
"proc-macro2 1.0.59",
|
2681 |
+
"quote 1.0.28",
|
2682 |
"string_cache_shared",
|
2683 |
]
|
2684 |
|
|
|
2690 |
dependencies = [
|
2691 |
"phf_generator 0.10.0",
|
2692 |
"phf_shared 0.10.0",
|
2693 |
+
"proc-macro2 1.0.59",
|
2694 |
+
"quote 1.0.28",
|
2695 |
]
|
2696 |
|
2697 |
[[package]]
|
|
|
2717 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2718 |
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
|
2719 |
dependencies = [
|
2720 |
+
"proc-macro2 1.0.59",
|
2721 |
+
"quote 1.0.28",
|
2722 |
"unicode-ident",
|
2723 |
]
|
2724 |
|
2725 |
[[package]]
|
2726 |
name = "syn"
|
2727 |
+
version = "2.0.18"
|
2728 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2729 |
+
checksum = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e"
|
2730 |
dependencies = [
|
2731 |
+
"proc-macro2 1.0.59",
|
2732 |
+
"quote 1.0.28",
|
2733 |
"unicode-ident",
|
2734 |
]
|
2735 |
|
|
|
2739 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2740 |
checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
|
2741 |
dependencies = [
|
2742 |
+
"proc-macro2 1.0.59",
|
2743 |
+
"quote 1.0.28",
|
2744 |
"syn 1.0.109",
|
2745 |
"unicode-xid 0.2.4",
|
2746 |
]
|
|
|
2793 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2794 |
checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
|
2795 |
dependencies = [
|
2796 |
+
"proc-macro2 1.0.59",
|
2797 |
+
"quote 1.0.28",
|
2798 |
+
"syn 2.0.18",
|
2799 |
]
|
2800 |
|
2801 |
[[package]]
|
|
|
2872 |
|
2873 |
[[package]]
|
2874 |
name = "tokio"
|
2875 |
+
version = "1.28.2"
|
2876 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2877 |
+
checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2"
|
2878 |
dependencies = [
|
2879 |
"autocfg 1.1.0",
|
2880 |
"bytes 1.4.0",
|
2881 |
"libc",
|
2882 |
+
"mio 0.8.7",
|
2883 |
"num_cpus",
|
2884 |
"parking_lot 0.12.1",
|
2885 |
"pin-project-lite",
|
|
|
2937 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2938 |
checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
|
2939 |
dependencies = [
|
2940 |
+
"proc-macro2 1.0.59",
|
2941 |
+
"quote 1.0.28",
|
2942 |
+
"syn 2.0.18",
|
2943 |
]
|
2944 |
|
2945 |
[[package]]
|
|
|
2949 |
checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
|
2950 |
dependencies = [
|
2951 |
"native-tls",
|
2952 |
+
"tokio 1.28.2",
|
2953 |
]
|
2954 |
|
2955 |
[[package]]
|
|
|
3034 |
"futures-core",
|
3035 |
"futures-sink",
|
3036 |
"pin-project-lite",
|
3037 |
+
"tokio 1.28.2",
|
3038 |
"tracing",
|
3039 |
]
|
3040 |
|
|
|
3109 |
|
3110 |
[[package]]
|
3111 |
name = "unicode-ident"
|
3112 |
+
version = "1.0.9"
|
3113 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3114 |
+
checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0"
|
3115 |
|
3116 |
[[package]]
|
3117 |
name = "unicode-normalization"
|
|
|
3257 |
"bumpalo",
|
3258 |
"log",
|
3259 |
"once_cell",
|
3260 |
+
"proc-macro2 1.0.59",
|
3261 |
+
"quote 1.0.28",
|
3262 |
+
"syn 2.0.18",
|
3263 |
"wasm-bindgen-shared",
|
3264 |
]
|
3265 |
|
|
|
3281 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3282 |
checksum = "14d6b024f1a526bb0234f52840389927257beb670610081360e5a03c5df9c258"
|
3283 |
dependencies = [
|
3284 |
+
"quote 1.0.28",
|
3285 |
"wasm-bindgen-macro-support",
|
3286 |
]
|
3287 |
|
|
|
3291 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3292 |
checksum = "e128beba882dd1eb6200e1dc92ae6c5dbaa4311aa7bb211ca035779e5efc39f8"
|
3293 |
dependencies = [
|
3294 |
+
"proc-macro2 1.0.59",
|
3295 |
+
"quote 1.0.28",
|
3296 |
+
"syn 2.0.18",
|
3297 |
"wasm-bindgen-backend",
|
3298 |
"wasm-bindgen-shared",
|
3299 |
]
|
|
|
3316 |
|
3317 |
[[package]]
|
3318 |
name = "websurfx"
|
3319 |
+
version = "0.11.0"
|
3320 |
dependencies = [
|
3321 |
"actix-files",
|
3322 |
"actix-web",
|
|
|
3333 |
"scraper",
|
3334 |
"serde",
|
3335 |
"serde_json",
|
3336 |
+
"tokio 1.28.2",
|
3337 |
]
|
3338 |
|
3339 |
[[package]]
|
Cargo.toml
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
[package]
|
2 |
name = "websurfx"
|
3 |
-
version = "0.
|
4 |
edition = "2021"
|
5 |
|
6 |
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
1 |
[package]
|
2 |
name = "websurfx"
|
3 |
+
version = "0.11.0"
|
4 |
edition = "2021"
|
5 |
|
6 |
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
docs/configuration.md
CHANGED
@@ -11,12 +11,17 @@ If you have built `websurfx` from source then the configuration file will be loc
|
|
11 |
|
12 |
If you have installed `websurfx` using the package manager of your Linux distro then the default configuration file will be located at `/etc/xdg/websurfx/`. You can copy the default config to `~/.config/websurfx/` and make the changes there and rerun the websurfx server.
|
13 |
|
14 |
-
Some of the configuration options provided in the file are stated below. These are subdivided into
|
15 |
|
|
|
16 |
- Server
|
17 |
- Website
|
18 |
- Cache
|
19 |
|
|
|
|
|
|
|
|
|
20 |
## Server
|
21 |
|
22 |
- **port:** Port number on which server should be launched.
|
|
|
11 |
|
12 |
If you have installed `websurfx` using the package manager of your Linux distro then the default configuration file will be located at `/etc/xdg/websurfx/`. You can copy the default config to `~/.config/websurfx/` and make the changes there and rerun the websurfx server.
|
13 |
|
14 |
+
Some of the configuration options provided in the file are stated below. These are subdivided into the following categories:
|
15 |
|
16 |
+
- General
|
17 |
- Server
|
18 |
- Website
|
19 |
- Cache
|
20 |
|
21 |
+
# General
|
22 |
+
|
23 |
+
- **logging:** An option to enable or disable logs.
|
24 |
+
|
25 |
## Server
|
26 |
|
27 |
- **port:** Port number on which server should be launched.
|
docs/installation.md
CHANGED
@@ -76,11 +76,17 @@ cd websurfx
|
|
76 |
After that edit the config.lua file located under `websurfx` directory. In the config file you will specifically need to change to values which is `binding_ip_addr` and `redis_connection_url` which should make the config look something like this:
|
77 |
|
78 |
```lua
|
79 |
-
--
|
|
|
|
|
|
|
80 |
port = "8080" -- port on which server should be launched
|
81 |
binding_ip_addr = "0.0.0.0" --ip address on the which server should be launched.
|
|
|
|
|
|
|
82 |
|
83 |
-
-- Website
|
84 |
-- The different colorschemes provided are:
|
85 |
-- {{
|
86 |
-- catppuccin-mocha
|
@@ -95,12 +101,8 @@ binding_ip_addr = "0.0.0.0" --ip address on the which server should be launched.
|
|
95 |
colorscheme = "catppuccin-mocha" -- the colorscheme name which should be used for the website theme
|
96 |
theme = "simple" -- the theme name which should be used for the website
|
97 |
|
98 |
-
-- Caching
|
99 |
-
redis_connection_url = "redis://
|
100 |
-
|
101 |
-
production_use = false -- whether to use production mode or not (in other words this option should be used if it is to be used to host it on the server to provide a service to a large number of users)
|
102 |
-
-- if production_use is set to true
|
103 |
-
-- There will be a random delay before sending the request to the search engines, this is to prevent DDoSing the upstream search engines from a large number of simultaneous requests.
|
104 |
```
|
105 |
|
106 |
After this run the following command to deploy the app:
|
|
|
76 |
After that edit the config.lua file located under `websurfx` directory. In the config file you will specifically need to change to values which is `binding_ip_addr` and `redis_connection_url` which should make the config look something like this:
|
77 |
|
78 |
```lua
|
79 |
+
-- ### General ###
|
80 |
+
logging = true -- an option to enable or disable logs.
|
81 |
+
|
82 |
+
-- ### Server ###
|
83 |
port = "8080" -- port on which server should be launched
|
84 |
binding_ip_addr = "0.0.0.0" --ip address on the which server should be launched.
|
85 |
+
production_use = false -- whether to use production mode or not (in other words this option should be used if it is to be used to host it on the server to provide a service to a large number of users)
|
86 |
+
-- if production_use is set to true
|
87 |
+
-- There will be a random delay before sending the request to the search engines, this is to prevent DDoSing the upstream search engines from a large number of simultaneous requests.
|
88 |
|
89 |
+
-- ### Website ###
|
90 |
-- The different colorschemes provided are:
|
91 |
-- {{
|
92 |
-- catppuccin-mocha
|
|
|
101 |
colorscheme = "catppuccin-mocha" -- the colorscheme name which should be used for the website theme
|
102 |
theme = "simple" -- the theme name which should be used for the website
|
103 |
|
104 |
+
-- ### Caching ###
|
105 |
+
redis_connection_url = "redis://redis:6379" -- redis connection url address on which the client should connect on.
|
|
|
|
|
|
|
|
|
106 |
```
|
107 |
|
108 |
After this run the following command to deploy the app:
|
src/bin/websurfx.rs
CHANGED
@@ -19,7 +19,7 @@ async fn main() -> std::io::Result<()> {
|
|
19 |
let config = Config::parse().unwrap();
|
20 |
|
21 |
// Initializing logging middleware with level set to default or info.
|
22 |
-
if config.logging {
|
23 |
use env_logger::Env;
|
24 |
env_logger::Builder::from_env(Env::default().default_filter_or("info")).init();
|
25 |
}
|
|
|
19 |
let config = Config::parse().unwrap();
|
20 |
|
21 |
// Initializing logging middleware with level set to default or info.
|
22 |
+
if config.logging || config.debug {
|
23 |
use env_logger::Env;
|
24 |
env_logger::Builder::from_env(Env::default().default_filter_or("info")).init();
|
25 |
}
|
src/config_parser/parser.rs
CHANGED
@@ -26,6 +26,7 @@ pub struct Config {
|
|
26 |
pub redis_connection_url: String,
|
27 |
pub aggregator: AggreatorConfig,
|
28 |
pub logging: bool,
|
|
|
29 |
}
|
30 |
|
31 |
/// Configuration options for the aggregator.
|
@@ -73,6 +74,7 @@ impl Config {
|
|
73 |
redis_connection_url: globals.get::<_, String>("redis_connection_url")?,
|
74 |
aggregator: aggregator_config,
|
75 |
logging: globals.get::<_, bool>("logging")?,
|
|
|
76 |
})
|
77 |
})
|
78 |
}
|
|
|
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.
|
|
|
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 |
})
|
79 |
})
|
80 |
}
|
src/search_results_handler/aggregator.rs
CHANGED
@@ -40,12 +40,13 @@ pub async fn aggregate(
|
|
40 |
query: &str,
|
41 |
page: u32,
|
42 |
random_delay: bool,
|
|
|
43 |
) -> Result<SearchResults, Box<dyn std::error::Error>> {
|
44 |
let user_agent: String = random_user_agent();
|
45 |
let mut result_map: HashMap<String, RawSearchResult> = HashMap::new();
|
46 |
|
47 |
// Add a random delay before making the request.
|
48 |
-
if random_delay {
|
49 |
let mut rng = rand::thread_rng();
|
50 |
let delay_secs = rng.gen_range(1..10);
|
51 |
std::thread::sleep(Duration::from_secs(delay_secs));
|
|
|
40 |
query: &str,
|
41 |
page: u32,
|
42 |
random_delay: bool,
|
43 |
+
debug: bool,
|
44 |
) -> Result<SearchResults, Box<dyn std::error::Error>> {
|
45 |
let user_agent: String = random_user_agent();
|
46 |
let mut result_map: HashMap<String, RawSearchResult> = HashMap::new();
|
47 |
|
48 |
// Add a random delay before making the request.
|
49 |
+
if random_delay || !debug {
|
50 |
let mut rng = rand::thread_rng();
|
51 |
let delay_secs = rng.gen_range(1..10);
|
52 |
std::thread::sleep(Duration::from_secs(delay_secs));
|
src/server/routes.rs
CHANGED
@@ -128,7 +128,7 @@ pub async fn search(
|
|
128 |
}
|
129 |
Err(_) => {
|
130 |
let mut results_json: crate::search_results_handler::aggregation_models::SearchResults =
|
131 |
-
aggregate(query, page, config.aggregator.random_delay).await?;
|
132 |
results_json.add_style(config.style.clone());
|
133 |
redis_cache
|
134 |
.cache_results(serde_json::to_string(&results_json)?, &page_url)?;
|
|
|
128 |
}
|
129 |
Err(_) => {
|
130 |
let mut results_json: crate::search_results_handler::aggregation_models::SearchResults =
|
131 |
+
aggregate(query, page, config.aggregator.random_delay, config.debug).await?;
|
132 |
results_json.add_style(config.style.clone());
|
133 |
redis_cache
|
134 |
.cache_results(serde_json::to_string(&results_json)?, &page_url)?;
|
websurfx/config.lua
CHANGED
@@ -1,5 +1,6 @@
|
|
1 |
-- ### General ###
|
2 |
logging = true -- an option to enable or disable logs.
|
|
|
3 |
|
4 |
-- ### Server ###
|
5 |
port = "8080" -- port on which server should be launched
|
|
|
1 |
-- ### General ###
|
2 |
logging = true -- an option to enable or disable logs.
|
3 |
+
debug = false -- an option to enable or disable debug mode.
|
4 |
|
5 |
-- ### Server ###
|
6 |
port = "8080" -- port on which server should be launched
|