From d110f72c18c6b3b23ada0bbf04e166d474d77f9f Mon Sep 17 00:00:00 2001 From: neon_arch Date: Tue, 12 Mar 2024 15:36:13 +0300 Subject: [PATCH] :sparkles: feat: new experimental feature to improve performance using `io_uring` on linux distributions (#541) * :sparkles: feat: provide a new experimental conditional compilation feature to enable io-uring support (#528) * :bookmark: chore(release): bump the app version (#528) --- Cargo.lock | 52 +++++++++++++++++++++++++++++++++++++++++++++++----- Cargo.toml | 4 ++-- 2 files changed, 49 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 322bb34..452ab2d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -136,6 +136,7 @@ checksum = "28f32d40287d3f402ae0028a9d54bef51af15c8769492826a69d28f81893151d" dependencies = [ "futures-core", "tokio 1.36.0", + "tokio-uring", ] [[package]] @@ -150,8 +151,9 @@ dependencies = [ "futures-core", "futures-util", "mio 0.8.11", - "socket2", + "socket2 0.5.6", "tokio 1.36.0", + "tokio-uring", "tracing", ] @@ -211,7 +213,7 @@ dependencies = [ "serde_json", "serde_urlencoded 0.7.1", "smallvec 1.13.1", - "socket2", + "socket2 0.5.6", "time 0.3.34", "url 2.5.0", ] @@ -1667,7 +1669,7 @@ dependencies = [ "httpdate", "itoa 1.0.10", "pin-project-lite", - "socket2", + "socket2 0.5.6", "tokio 1.36.0", "tower-service", "tracing", @@ -1762,6 +1764,16 @@ dependencies = [ "generic-array", ] +[[package]] +name = "io-uring" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd1e1a01cfb924fd8c5c43b6827965db394f5a3a16c599ce03452266e1cf984c" +dependencies = [ + "bitflags 1.3.2", + "libc", +] + [[package]] name = "iovec" version = "0.1.4" @@ -3127,6 +3139,12 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + [[package]] name = "scopeguard" version = "1.2.0" @@ -3372,6 +3390,16 @@ dependencies = [ "serde", ] +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi 0.3.9", +] + [[package]] name = "socket2" version = "0.5.6" @@ -3685,7 +3713,7 @@ dependencies = [ "parking_lot 0.12.1", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.5.6", "tokio-macros", "windows-sys 0.48.0", ] @@ -3836,6 +3864,20 @@ dependencies = [ "tokio-executor", ] +[[package]] +name = "tokio-uring" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d5e02bb137e030b3a547c65a3bd2f1836d66a97369fdcc69034002b10e155ef" +dependencies = [ + "io-uring", + "libc", + "scoped-tls", + "slab", + "socket2 0.4.10", + "tokio 1.36.0", +] + [[package]] name = "tokio-util" version = "0.7.10" @@ -4157,7 +4199,7 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "websurfx" -version = "1.10.9" +version = "1.11.0" dependencies = [ "actix-cors", "actix-files", diff --git a/Cargo.toml b/Cargo.toml index 556c5d8..d8bd468 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "websurfx" -version = "1.10.9" +version = "1.11.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" @@ -87,4 +87,4 @@ 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"] - +experimental-io-uring = ["actix-web/experimental-io-uring"]