* 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>
* ♻️ 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>
* lazyload search result text with css content-visibility
* typo, lightning-fast is grammatically correct
* revamped logo to look more modern
* added class to control how new logo looks and behaves
* added class to control how new logo looks and behaves
* Replace old websurfx logo in readme file
* major visual revamp
* removed logo files and switched to inline svg
* added `--logo-color` to make svg logo colorscheme adaptive
* Update public/static/themes/simple.css
Co-authored-by: neon_arch <mustafadhuleb53@gmail.com>
* [CodeFactor] Apply fixes
* chores: fix duplicate footer selector and remove unknown pseudo-class
* chores: remove missed duplicate footer selector
* chores: pass formatter check by deleting empty line at 18
* fix search result title disappearing after being visited
* 💄 style: revamped the about page to look more modern and responsive
* [CodeFactor] Apply fixes
* chore: remove invalid css property
* chore: remove lines between or after svg string literals to conform with proper rust formatting
* chore: remove blank lines between svg literals to conform with proper Rust formatting
* refactor: changed decimal values to percentage, added quotation in urls, add blank lines to before rule declarations and between font-face rules
* refactor: correctly remove blank lines between and after svg string literals to conform with proper rust formatting
* chore: revert percentage values into decimals and trimmed blank lines before first rule inside media queries
* combine font face queries into one
* fix: added missing quotation marks on font face url
---------
Co-authored-by: neon_arch <mustafadhuleb53@gmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: alamin655 <mdalamin655@outlook.com>
Co-authored-by: codefactor-io <support@codefactor.io>
Co-authored-by: alamin655 <129589283+alamin655@users.noreply.github.com>
* attempt1
* rough draft
* add features and their optional dependancies
* add encryption and compression error variants
* add a sample implementation to cache trait
* Update src/cache/cacher.rs
Co-authored-by: neon_arch <mustafadhuleb53@gmail.com>
* adjust comment so feature flag would apply?
* adjust feature flag so it applies?
* formatting
* Update src/cache/cacher.rs
update documentation
Co-authored-by: neon_arch <mustafadhuleb53@gmail.com>
* [features]Add base64 and chacha20 dependencies for compress-cache-results and encrypt-cache-results
* move encryption key and cipher logic to separate sub module
* added cacha20 and cec-results feature
* added cacha20 and cec-results feature
* added compression and encryption helper functions to trait implementations
* added compression and encryption implementation for inMemoryCache
* base64 is only requried when redis-cache feature is enabled
* add error case for base64 and encryption/compression implementation to redisCache
* Refactor cacher to remove regex dependency
* fmt cache error and cacher
* Update Cargo.toml
disabling the unneeded default-features
Co-authored-by: neon_arch <mustafadhuleb53@gmail.com>
* fix unused import warning for mimalloc
* remove deprecated method
* add doc comments for encryption module
* fix known bugs and use cfg-if module
* make cfg-if an optional dependency
* use feature-flag instead of maco lint
* add comment to explain type complexity
* bump app version
* Update src/cache/encryption.rs
Co-authored-by: neon_arch <mustafadhuleb53@gmail.com>
* fixed type complexity and add docs for types
---------
Co-authored-by: Spencer Najib <spencernajib2@gmail.com>
Co-authored-by: alamin655 <mdalamin655@outlook.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: neon_arch <mustafadhuleb53@gmail.com>
Co-authored-by: Spencerjibz <=spencernajib2@gmail.com>
Co-authored-by: spencer <spencer@DESKTOP-SIF13AR>
fix: add closing curly brace
- accidentally removed from previous PR. i hope i did not ruin some
build
* feat: implement mojeek engine
* Merge branch 'rolling' into FEAT_316_bing_search_engine
* ✨ feat: implement bing engine
* Fix: include cookie string to header_map
* Fix: include <strong> tags from upstream search
* Merge branch 'rolling' into FEAT_316_bing_search_engine
Co-authored-by: neon-mmd <132049916+neon-mmd@users.noreply.github.com>
* ♻️ refactor: change content-type
* 🐛 fix: change parameters that were passed to the settings function
---------
Co-authored-by: neon_arch <mustafadhuleb53@gmail.com>