1
0
Fork 0
mirror of https://github.com/Nutomic/ibis.git synced 2025-01-11 10:05:49 +00:00

Enable http compression

This commit is contained in:
Felix Ableitner 2024-12-11 15:35:31 +01:00
parent f96561b27b
commit 3e7c922daf
3 changed files with 98 additions and 3 deletions

93
Cargo.lock generated
View file

@ -89,6 +89,21 @@ dependencies = [
"memchr",
]
[[package]]
name = "alloc-no-stdlib"
version = "2.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
[[package]]
name = "alloc-stdlib"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
dependencies = [
"alloc-no-stdlib",
]
[[package]]
name = "allocator-api2"
version = "0.2.20"
@ -140,6 +155,22 @@ version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d902e3d592a523def97af8f317b08ce16b7ab854c1985a0c671e6f15cebc236"
[[package]]
name = "async-compression"
version = "0.4.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df895a515f70646414f4b45c0b79082783b80552b373a68283012928df56f522"
dependencies = [
"brotli",
"flate2",
"futures-core",
"memchr",
"pin-project-lite",
"tokio",
"zstd",
"zstd-safe",
]
[[package]]
name = "async-lock"
version = "3.4.0"
@ -398,6 +429,27 @@ dependencies = [
"cipher",
]
[[package]]
name = "brotli"
version = "7.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd"
dependencies = [
"alloc-no-stdlib",
"alloc-stdlib",
"brotli-decompressor",
]
[[package]]
name = "brotli-decompressor"
version = "4.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362"
dependencies = [
"alloc-no-stdlib",
"alloc-stdlib",
]
[[package]]
name = "bumpalo"
version = "3.16.0"
@ -428,6 +480,8 @@ version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd9de9f2205d5ef3fd67e685b0df337994ddd4495e2a28d185500d0e1edfea47"
dependencies = [
"jobserver",
"libc",
"shlex",
]
@ -2057,6 +2111,15 @@ version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
[[package]]
name = "jobserver"
version = "0.1.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0"
dependencies = [
"libc",
]
[[package]]
name = "js-sys"
version = "0.3.72"
@ -4421,8 +4484,10 @@ version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "403fa3b783d4b626a8ad51d766ab03cb6d2dbfc46b1c5d4448395e6628dc9697"
dependencies = [
"async-compression",
"bitflags 2.6.0",
"bytes",
"futures-core",
"futures-util",
"http",
"http-body",
@ -5080,3 +5145,31 @@ dependencies = [
"quote",
"syn 2.0.87",
]
[[package]]
name = "zstd"
version = "0.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9"
dependencies = [
"zstd-safe",
]
[[package]]
name = "zstd-safe"
version = "7.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059"
dependencies = [
"zstd-sys",
]
[[package]]
name = "zstd-sys"
version = "2.0.13+zstd.1.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa"
dependencies = [
"cc",
"pkg-config",
]

View file

@ -72,7 +72,7 @@ axum = "0.7.7"
axum-macros = "0.4.2"
axum-extra = { version = "0.9.4", features = ["cookie"] }
tokio = { version = "1.41.1", features = ["full"] }
tower-http = { version = "0.6.1", features = ["cors", "fs"] }
tower-http = { version = "0.6.1", features = ["cors", "fs", "compression-full"] }
activitypub_federation = { version = "0.6.0", features = [
"axum",
"diesel",
@ -112,6 +112,7 @@ assets-dir = "assets"
bin-features = ["ssr"]
lib-features = ["hydrate"]
lib-profile-release = "wasm-release"
style-file = "assets/ibis.css"
tailwind-input-file = "assets/ibis.css"
tailwind-config-file = "tailwind.config.js"

View file

@ -51,7 +51,7 @@ use leptos_axum::{generate_route_list, LeptosRoutes};
use log::info;
use std::net::SocketAddr;
use tokio::{net::TcpListener, sync::oneshot};
use tower_http::cors::CorsLayer;
use tower_http::{compression::CompressionLayer, cors::CorsLayer};
use tower_layer::Layer;
use utils::generate_keypair;
@ -113,7 +113,8 @@ pub async fn start(
.nest("/api/v1", api_routes())
.nest("", nodeinfo::config())
.layer(FederationMiddleware::new(config))
.layer(CorsLayer::permissive());
.layer(CorsLayer::permissive())
.layer(CompressionLayer::new());
// Rewrite federation routes
// https://docs.rs/axum/0.7.4/axum/middleware/index.html#rewriting-request-uri-in-middleware