0
0
mirror of https://github.com/neon-mmd/websurfx.git synced 2024-12-25 22:08:22 -05:00
Commit Graph

47 Commits

Author SHA1 Message Date
ddotthomas
5d06cce220
feat(config): option to keep the websurfx server connection alive for a certain period for subsequent requests (#568) 2024-05-09 17:24:12 +00:00
Kekma
b1df4f1154
feat(config): config option to timeout idle connections within the reqwest pool (#551) 2024-03-30 16:05:44 +03:00
Spencer
bb50e8bb25
Ranking of aggregated search results based on relevancy of the search result to the user's search query (#549)
* add sorting by relevance and merge new changes

* fix conflicts

* Update src/models/aggregation_models.rs

Co-authored-by: neon_arch <mustafadhuleb53@gmail.com>

* Update src/models/aggregation_models.rs

Co-authored-by: neon_arch <mustafadhuleb53@gmail.com>

* Update Cargo.toml

Co-authored-by: neon_arch <mustafadhuleb53@gmail.com>

* Update Cargo.toml

Co-authored-by: neon_arch <mustafadhuleb53@gmail.com>

* Update Cargo.toml

Co-authored-by: neon_arch <mustafadhuleb53@gmail.com>

* enable non-static-synonyms features

---------

Co-authored-by: neon_arch <mustafadhuleb53@gmail.com>
2024-03-25 09:16:49 +00:00
Kekma
c584a7d601
feat(config): config option to keep tcp connection alive for a certain period for subsequent requests (#548)
* Added new HTTP connection setting to the reqwest::ClientBuilder to timeout requests for fetching the search results from the upstream search engines.

* Provided a config option under the server section of the config to allow users to keep tcp connections alive for each request for a certain period of time

* Update src/results/aggregator.rs

Co-authored-by: neon_arch <mustafadhuleb53@gmail.com>

* Update src/results/aggregator.rs

Co-authored-by: neon_arch <mustafadhuleb53@gmail.com>

* Fixed import issue in `tcp_connection_keepalive`

* updated size to u8

Co-authored-by: neon_arch <mustafadhuleb53@gmail.com>

* Fixed sizer eror in `parser.rs`

---------

Co-authored-by: neon_arch <mustafadhuleb53@gmail.com>
Co-authored-by: alamin655 <129589283+alamin655@users.noreply.github.com>
2024-03-25 12:11:56 +03:00
Kekma
2149e32c9e
feat: config option to timeout requests for fetching search results from the upstream search engines (#545) 2024-03-18 22:33:52 +03:00
neon_arch
991f3f59de
perf: several optimizations for improving the performance of the engine (#540)
* ♻️ refactor: initialize & store the config & cache structs as a constant (#486)
- initializes & stores the config & cache structs as a static constant.
- Pass the config & cache structs as a static reference to all the
  functions handling their respective route.

*  perf: replace hashmaps with vectors for fetching & aggregating results (#486)
- replace hashmaps with vectors for fetching, collecting & aggregating results as it tends to be contigous & cache efficient data structure.
- refactor & redesign algorithms for fetching & aggregating results
  centered around vectors in aggregate function.

*  build: add the future crate (#486)

*  perf: use `futureunordered` for collecting results fetched from the tokio spawn tasks (#486)
- using the `futureunordered` instead of vector for collecting results
  reduces the time it takes to fetch the results as the results do not
  need to come in specific order so any result that gets fetched first
  gets collected in the `futureunordered` type.

Co-authored-by: Spencerjibz <spencernajib2@gmail.com>

*  perf: initialize new async connections parallely using tokio spawn tasks (#486)

*  perf: initialize redis pipeline struct once with the default size of 3 (#486)

*  perf: reduce branch predictions by reducing conditional code branches (#486)

*  test(unit): provide unit test for the `get_safesearch_level` function (#486)

*  perf: reduce clones & use index based loop to improve search results filtering performance (#486)

* 🚨 fix(clippy): make clippy/format checks happy (#486)

* 🚨 fix(build): make the cargo build check happy (#486)

*  perf: reduce the amount of clones, to_owneds & to_strings (#486)

*  perf: use async crates & methods & make functions async (#486)

* 🔖 chore(release): bump the app version (#486)

---------

Co-authored-by: Spencerjibz <spencernajib2@gmail.com>
2024-03-11 12:01:30 +03:00
ddotthomas
41ab8a2a76
config option to configure the https adaptive window size for requests (#529)
* Added config option to enable the reqwest client adaptive window

* Change adaptive window config name

Co-authored-by: neon_arch <mustafadhuleb53@gmail.com>

* Modified documentation

* Trimmed down aggregate parameters

---------

Co-authored-by: neon_arch <mustafadhuleb53@gmail.com>
2024-02-28 15:08:29 +03:00
víctor
5e2669b6de
♻️ Clean some code, fix bug (#396)
* ♻️ Improve src/handler

Removes unnecessary submoduling & adjusts some weird code

* ♻️ Cleaner code

* 🐛 Fixed issue where code would overflow if page=0
2023-11-27 09:45:28 +03:00
alamin655
ae9fa5b388
Merge branch 'rolling' into PERF/384_optimize-the-performance-of-fetching-results-in-the-websurfx-search-engine-backend 2023-11-20 21:03:12 +05:30
neon_arch
b42adaa5a3 ️ perf: rewrite the code by using a constant storing a prebuilt client globally for each thread (#384) 2023-11-20 15:27:49 +03:00
neon_arch
5c60d733cd ♻️ refactor: remove the code to pass the query data into the SearchResults struct (#302) 2023-11-18 21:41:08 +03:00
neon_arch
3742893c19 ♻️ refactor: reimplement the random delay code without the rand crate (#380) 2023-11-08 19:09:50 +03:00
Aditya Phasu
fc3b416970
🔧 remove unnecessary clone call (#333) 2023-10-15 01:07:59 +03:00
Uday Sagar
405d00612f
🔧 Restricts the visibility of the user-agent helper module (#331) 2023-10-14 22:14:28 +03:00
neon_arch
ca4447fcdf Merge branch 'rolling' into reorganize-code-and-restructure-the-codebase 2023-09-13 18:31:37 +03:00
neon_arch
1a222217c4 🧹 chore: make github actions happy (#205) 2023-09-12 17:59:33 +03:00
neon_arch
fb231de416
Merge branch 'rolling' into change-document-style-with-linter-warnings 2023-09-12 17:49:46 +03:00
neon_arch
12bfc5276a 🧹 chore: make clippy happy (#201) 2023-09-10 18:56:54 +03:00
alamin655
60b2fcc27a
Merge branch 'rolling' into feat-disallow-user-to-search-via-lists 2023-09-10 20:51:10 +05:30
neon_arch
493c56bd02 ⚙️ refactor: reorganize code & restructure codebase for better maintainability (#207) 2023-09-03 20:50:50 +03:00
neon_arch
049b1c1ddd ⚙️ refactor: change & add documentation to the code based on the lints (#205) 2023-09-03 19:23:34 +03:00
neon_arch
410257c276 feat: implement new fields, traits and functions (#201) 2023-09-02 17:48:27 +03:00
neon_arch
d6463f0872 feat: add condition to filter results only when safe_search level is
set to 3 or above (#201)
2023-09-02 17:38:46 +03:00
neon_arch
13ce420642 ⚙️ refactor: add several minor optimizations (#180)(#178) 2023-08-27 21:04:41 +03:00
neon_arch
2885f23ec9 ⚙️ refactor: replace vecs with smallvecs for smaller data sizes & replace to_strings with to_owned (#180)(#178) 2023-08-27 21:02:23 +03:00
neon_arch
4ccd0486e7 ⚙️ refactor: replace oncecell with oncelock from std library (#180)(#178) 2023-08-27 20:57:33 +03:00
xffxff
c3a7c917f6 make format happy 2023-08-24 09:50:19 +08:00
xffxff
23ff24bdf3 add a test to check if the regex wildcard .* matches any character 2023-08-24 09:46:01 +08:00
xffxff
a2fc10ca39 add a test for invalid regex 2023-08-24 09:36:08 +08:00
xffxff
4280545e8c add a test for non-existent file 2023-08-24 09:32:22 +08:00
xffxff
5c0397c456 add some comments to filter_with_lists and add a basic test 2023-08-24 09:29:08 +08:00
zhou fan
2f1fa00f87
Merge branch 'rolling' into feat-error-box-for-engine-errors 2023-08-24 08:16:32 +08:00
zhou fan
575a7f95ba
Merge branch 'rolling' into feat-error-box-for-engine-errors 2023-08-24 08:02:03 +08:00
neon_arch
44216e4d4c feat: optimise search results filtering code (#163) 2023-08-23 13:11:09 +03:00
neon_arch
4f28711218 feat: add code to filter aggregated search results using lists (#163) 2023-08-22 19:16:37 +03:00
Milim
5aca5c0d0d Improve aggregation
Adds the EngineHandler struct
Removes vulnerability where an attacker could send requests cookies with fake engine names and crash the server.
Merged RawSearchResult and SearchResult, as they were functionally identical.
2023-08-18 10:43:53 +02:00
Milim
15dfda6ea9 Improve Aggregation function & config parser
Refactor aggregation function
Rename visiting_url to url, as they are always the same (see upstream engine scalping).
Refactor parsing function to be more readable.
2023-08-17 22:48:20 +02:00
Milim
af3b1cb308 Use non-blocking sleep function
std:🧵:sleep blocks the entire thread and thus also forces all other current requests to be halted.
2023-08-17 21:45:48 +02:00
neon_arch
c4935f202a feat: add images, error_box & new message when no results are provided (#185) 2023-08-10 04:32:47 +03:00
neon_arch
653d08c801 🔧 chore: fix link in the logs & add logs for engine error (#170) 2023-08-05 19:16:27 +03:00
neon_arch
9cb582a10d feat: improve code documentation 2023-07-30 17:08:47 +03:00
neon_arch
2d47e8d730 feat: provide the functionality to use the new config option 2023-07-30 10:53:48 +03:00
neon_arch
a28d559426 feat: add documentation for the outputs.iter() code block 2023-07-17 17:03:50 +03:00
neon_arch
7e3b59e8c0 feat: remove the empty_result_set option and helper functions 2023-07-17 13:03:20 +03:00
neon_arch
cff7de9d0f feat: rephrase the comment to break it into smaller sentences. 2023-07-17 10:47:29 +03:00
neon_arch
74e4fc6169 Merge branch 'rolling' into improve-async-multithreading 2023-07-15 19:50:31 +03:00
Milim
440216871d Rename Things, refactor some code
BREAKING: renames `binding_ip_addr` to `binding_ip` and `redis_connection_url` to `redis_url`.

Renames a lot of internals as well, but they are to many to mention.
2023-07-03 19:30:25 +02:00