[package] name = "websurfx" version = "1.9.4" 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" license = "AGPL-3.0" [[bin]] name = "websurfx" test = true bench = false path = "src/bin/websurfx.rs" [dependencies] reqwest = {version="0.11.22", default-features=false, features=["rustls-tls","brotli", "gzip"]} tokio = {version="1.32.0",features=["rt-multi-thread","macros"], default-features = false} serde = { version = "1.0.196", default-features = false, features = ["derive"] } serde_json = {version="1.0.109", default-features=false} maud = {version="0.25.0", default-features=false, features=["actix-web"]} scraper = {version="0.18.1", default-features = false} actix-web = {version="4.4.0", features = ["cookies", "macros", "compress-brotli"], default-features=false} actix-files = {version="0.6.5", default-features=false} actix-cors = {version="0.6.4", default-features=false} fake-useragent = {version="0.1.3", default-features=false} env_logger = {version="0.11.1", default-features=false} log = {version="0.4.20", default-features=false} mlua = {version="0.9.1", features=["luajit", "vendored", "serialize"], default-features=false, optional = true} redis = {version="0.24.0", features=["tokio-comp","connection-manager"], default-features = false, optional = true} blake3 = {version="1.5.0", default-features=false} error-stack = {version="0.4.0", default-features=false, features=["std"]} async-trait = {version="0.1.76", default-features=false} regex = {version="1.9.4", features=["perf"], default-features = false} smallvec = {version="1.13.1", features=["union", "serde"], default-features=false} futures = {version="0.3.28", default-features=false} dhat = {version="0.3.2", optional = true, default-features=false} 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} criterion = {version="0.5.1", default-features=false} tempfile = {version="3.8.0", default-features=false} [build-dependencies] lightningcss = {version="1.0.0-alpha.52", default-features=false, features=["grid"]} minify-js = {version="0.6.0", default-features=false} [profile.dev] opt-level = 0 debug = true split-debuginfo = 'unpacked' debug-assertions = true overflow-checks = true lto = false panic = 'unwind' incremental = true codegen-units = 256 rpath = false [profile.release] opt-level = 3 debug = false # This should only be commented when testing with dhat profiler # debug = 1 # This should only be uncommented when testing with dhat profiler split-debuginfo = '...' debug-assertions = false overflow-checks = false lto = true panic = 'abort' incremental = false codegen-units = 1 rpath = false strip = "debuginfo" [features] default = ["memory-cache", "lua-config" ] lua-config = ["dep:mlua"] json-config = [] dhat-heap = ["dep:dhat"] memory-cache = ["dep:mini-moka"] 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"]