- Add 2 profiles with binary size reduction feature to allow devices
with low storage to compile/build the app with smaller size.
- Add 3 profiles to allow devices with low powered cpus or other
architectures like arm to compile apps using less cpu usage.
- Add 6 profiles with hybrid of both for both low powered cpu and low
storage devices.
* 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>
* created 3 rose pine color schemes for more customization
* adjusted simple.css about logo container svg to use the logo color variable and match the search container
* ♻️ 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>