✨ Compression and encryption for the cached search results (#443)
* 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>
This commit is contained in:
parent
33846cee34
commit
efa8efc6c7
8 changed files with 432 additions and 15 deletions
13
Cargo.toml
13
Cargo.toml
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "websurfx"
|
||||
version = "1.7.3"
|
||||
version = "1.9.0"
|
||||
edition = "2021"
|
||||
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."
|
||||
repository = "https://github.com/neon-mmd/websurfx"
|
||||
|
@ -38,6 +38,11 @@ mimalloc = { version = "0.1.38", default-features = false }
|
|||
async-once-cell = {version="0.5.3", default-features=false}
|
||||
actix-governor = {version="0.5.0", default-features=false}
|
||||
mini-moka = { version="0.10", optional = true, default-features=false, features=["sync"]}
|
||||
brotli = { version = "3.4.0", default-features = false, features=["std"], optional=true}
|
||||
chacha20poly1305={version="0.10.1", default-features=false, features=["alloc","getrandom"], optional=true}
|
||||
chacha20 = {version="0.9.1", default-features=false, optional=true}
|
||||
base64 = {version="0.21.5", default-features=false, features=["std"], optional=true}
|
||||
cfg-if = {version="1.0.0", default-features=false,optional=true}
|
||||
|
||||
[dev-dependencies]
|
||||
rusty-hook = {version="^0.11.2", default-features=false}
|
||||
|
@ -78,4 +83,8 @@ strip = "debuginfo"
|
|||
default = ["memory-cache"]
|
||||
dhat-heap = ["dep:dhat"]
|
||||
memory-cache = ["dep:mini-moka"]
|
||||
redis-cache = ["dep:redis"]
|
||||
redis-cache = ["dep:redis","dep:base64"]
|
||||
compress-cache-results = ["dep:brotli","dep:cfg-if"]
|
||||
encrypt-cache-results = ["dep:chacha20poly1305","dep:chacha20"]
|
||||
cec-cache-results = ["compress-cache-results","encrypt-cache-results"]
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue