2023-04-22 07:35:07 -04:00
[ package ]
name = "websurfx"
2024-10-08 08:09:41 -04:00
version = "1.18.0"
2023-04-22 07:35:07 -04:00
edition = "2021"
2023-06-05 05:30:14 -04:00
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"
2023-04-22 07:35:07 -04:00
2023-10-14 10:18:22 -04:00
[ [ bin ] ]
name = "websurfx"
test = true
bench = false
path = "src/bin/websurfx.rs"
2023-04-22 07:35:07 -04:00
[ dependencies ]
2024-08-16 04:17:12 -04:00
reqwest = { version = "0.12.5" , default-features = false , features = [
2024-03-25 05:16:49 -04:00
"rustls-tls" ,
"brotli" ,
"gzip" ,
2024-10-04 23:47:36 -04:00
"http2" ,
"socks" ,
2024-03-25 05:16:49 -04:00
] }
2024-11-02 07:27:27 -04:00
tokio = { version = "1.41.0" , features = [
2024-03-25 05:16:49 -04:00
"rt-multi-thread" ,
"macros" ,
"fs" ,
"io-util" ,
] , default-features = false }
2024-09-01 22:13:42 -04:00
serde = { version = "1.0.209" , default-features = false , features = [ "derive" ] }
2024-08-16 03:54:54 -04:00
serde_json = { version = "1.0.122" , default-features = false }
2024-09-05 12:16:00 -04:00
bincode = { version = "1.3.3" , default-features = false }
2024-05-02 09:54:52 -04:00
maud = { version = "0.26.0" , default-features = false , features = [
2024-03-25 05:16:49 -04:00
"actix-web" ,
] }
2024-09-02 03:51:28 -04:00
scraper = { version = "0.20.0" , default-features = false }
2024-09-02 01:08:37 -04:00
actix-web = { version = "4.9.0" , features = [
2024-03-25 05:16:49 -04:00
"cookies" ,
"macros" ,
"compress-brotli" ,
] , default-features = false }
actix-files = { version = "0.6.5" , default-features = false }
actix-cors = { version = "0.7.0" , 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.21" , default-features = false }
2024-08-16 05:39:54 -04:00
mlua = { version = "0.9.9" , features = [
2024-03-25 05:16:49 -04:00
"luajit" ,
"vendored" ,
] , default-features = false }
2024-10-01 22:04:26 -04:00
redis = { version = "0.27.2" , features = [
2024-03-25 05:16:49 -04:00
"tokio-comp" ,
"connection-manager" ,
2024-09-05 12:16:00 -04:00
"tcp_nodelay"
2024-03-25 05:16:49 -04:00
] , default-features = false , optional = true }
2024-09-01 22:19:10 -04:00
blake3 = { version = "1.5.4" , default-features = false }
2024-10-02 00:50:58 -04:00
error-stack = { version = "0.5.0" , default-features = false , features = [
2024-03-25 05:16:49 -04:00
"std" ,
] }
2024-05-02 09:59:45 -04:00
async-trait = { version = "0.1.80" , default-features = false }
2024-10-01 22:09:30 -04:00
regex = { version = "1.11.0" , features = [ "perf" ] , default-features = false }
2024-11-02 07:36:18 -04:00
futures = { version = "0.3.31" , default-features = false , features = [ "alloc" ] }
2024-03-25 05:16:49 -04:00
dhat = { version = "0.3.2" , optional = true , default-features = false }
2024-08-16 04:22:03 -04:00
mimalloc = { version = "0.1.43" , default-features = false }
2024-03-25 05:16:49 -04:00
async-once-cell = { version = "0.5.3" , default-features = false }
2024-11-02 07:32:26 -04:00
actix-governor = { version = "0.7.0" , default-features = false }
2024-09-05 12:16:00 -04:00
moka = { version = "0.12.8" , optional = true , default-features = false , features = [
"future" ,
2024-03-25 05:16:49 -04:00
] }
2024-09-02 01:13:22 -04:00
async-compression = { version = "0.4.12" , default-features = false , features = [
2024-03-25 05:16:49 -04:00
"brotli" ,
"tokio" ,
] , 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 }
2024-05-02 10:11:45 -04:00
keyword_extraction = { version = "1.4.3" , default-features = false , features = [
2024-03-25 05:16:49 -04:00
"tf_idf" ,
2024-09-05 12:16:00 -04:00
"rayon" ,
2024-03-25 05:16:49 -04:00
] }
stop-words = { version = "0.8.0" , default-features = false , features = [ "iso" ] }
thesaurus = { version = "0.5.2" , default-features = false , optional = true , features = [
"moby" ,
2024-09-02 11:27:50 -04:00
] }
itertools = { version = "0.13.0" , default-features = false }
2023-06-01 05:25:36 -04:00
[ dev-dependencies ]
2024-03-25 05:16:49 -04:00
rusty-hook = { version = "^0.11.2" , default-features = false }
criterion = { version = "0.5.1" , default-features = false }
2024-10-02 04:24:27 -04:00
tempfile = { version = "3.13.0" , default-features = false }
2023-06-05 05:30:14 -04:00
2023-10-30 12:20:19 -04:00
[ build-dependencies ]
2024-06-08 14:23:44 -04:00
lightningcss = { version = "1.0.0-alpha.57" , default-features = false , features = [
2024-03-25 05:16:49 -04:00
"grid" ,
] }
2024-05-04 12:57:40 -04:00
# Disabled until bug fixing update
# minify-js = { version = "0.6.0", default-features = false }
# Temporary fork with fix
minify-js = { git = "https://github.com/RuairidhWilliamson/minify-js" , branch = "master" , version = "0.6.0" , default-features = false }
2023-06-05 05:30:14 -04:00
[ profile . dev ]
opt-level = 0
debug = true
2023-11-08 11:04:57 -05:00
split-debuginfo = 'unpacked'
2023-06-05 05:30:14 -04:00
debug-assertions = true
overflow-checks = true
lto = false
panic = 'unwind'
incremental = true
codegen-units = 256
rpath = false
[ profile . release ]
opt-level = 3
2023-08-27 14:10:36 -04:00
debug = false # This should only be commented when testing with dhat profiler
# debug = 1 # This should only be uncommented when testing with dhat profiler
2023-06-05 05:30:14 -04:00
split-debuginfo = '...'
debug-assertions = false
overflow-checks = false
2024-03-13 04:25:54 -04:00
lto = 'thin'
2023-08-22 12:23:39 -04:00
panic = 'abort'
2023-06-05 05:30:14 -04:00
incremental = false
2023-08-30 12:05:38 -04:00
codegen-units = 1
2023-06-05 05:30:14 -04:00
rpath = false
2024-03-18 17:59:37 -04:00
strip = "symbols"
2023-08-27 14:10:36 -04:00
2024-05-04 11:30:44 -04:00
[ profile . bsr1 ]
inherits = "release"
opt-level = "s"
[ profile . bsr2 ]
2024-05-06 16:19:25 -04:00
inherits = "bsr1"
2024-05-04 11:30:44 -04:00
opt-level = "z"
[ profile . lpcb1 ]
inherits = "release"
codegen-units = 16
[ profile . lpcb2 ]
inherits = "lpcb1"
lto = "off"
[ profile . lpcb3 ]
inherits = "lpcb2"
opt-level = 2
[ profile . bsr_and_lpcb1 ]
inherits = "lpcb1"
opt-level = "s"
[ profile . bsr_and_lpcb2 ]
inherits = "lpcb2"
opt-level = "s"
[ profile . bsr_and_lpcb3 ]
inherits = "lpcb3"
opt-level = "s"
[ profile . bsr_and_lpcb4 ]
inherits = "lpcb1"
opt-level = "z"
[ profile . bsr_and_lpcb5 ]
inherits = "lpcb1"
opt-level = "z"
[ profile . bsr_and_lpcb6 ]
inherits = "lpcb1"
opt-level = "z"
2023-08-27 14:10:36 -04:00
[ features ]
2024-03-25 05:16:49 -04:00
use-synonyms-search = [ "thesaurus/static" ]
2023-09-13 17:19:44 -04:00
default = [ "memory-cache" ]
2024-03-25 05:16:49 -04:00
dhat-heap = [ "dep:dhat" ]
2024-09-05 12:16:00 -04:00
memory-cache = [ "dep:moka" ]
2024-03-25 05:16:49 -04:00
redis-cache = [ "dep:redis" , "dep:base64" ]
compress-cache-results = [ "dep:async-compression" , "dep:cfg-if" ]
encrypt-cache-results = [ "dep:chacha20poly1305" , "dep:chacha20" ]
cec-cache-results = [ "compress-cache-results" , "encrypt-cache-results" ]
2024-03-12 08:36:13 -04:00
experimental-io-uring = [ "actix-web/experimental-io-uring" ]
2024-03-25 05:16:49 -04:00
use-non-static-synonyms-search = [ "thesaurus" ]