feat: change fxhash to ahash for hashmaps and hashsets
This commit is contained in:
parent
504f5e54a9
commit
c0fcee71cf
18 changed files with 19 additions and 20 deletions
|
|
@ -15,7 +15,7 @@ post-quantum = ["rustls-post-quantum"]
|
|||
|
||||
[dependencies]
|
||||
url = { version = "2.5.4" }
|
||||
rustc-hash = "2.1.0"
|
||||
ahash = "0.8.11"
|
||||
thiserror = "2.0.9"
|
||||
tracing = "0.1.41"
|
||||
async-trait = "0.1.84"
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ use crate::{
|
|||
error::RpxyAcmeError,
|
||||
log::*,
|
||||
};
|
||||
use rustc_hash::FxHashMap as HashMap;
|
||||
use ahash::HashMap;
|
||||
use rustls::ServerConfig;
|
||||
use rustls_acme::AcmeConfig;
|
||||
use std::{path::PathBuf, sync::Arc};
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ rpxy-lib = { path = "../rpxy-lib/", default-features = false, features = [
|
|||
|
||||
mimalloc = { version = "*", default-features = false }
|
||||
anyhow = "1.0.95"
|
||||
rustc-hash = "2.1.0"
|
||||
ahash = "0.8.11"
|
||||
serde = { version = "1.0.217", default-features = false, features = ["derive"] }
|
||||
tokio = { version = "1.42.0", default-features = false, features = [
|
||||
"net",
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
use super::toml::ConfigToml;
|
||||
use crate::error::{anyhow, ensure};
|
||||
use ahash::HashMap;
|
||||
use clap::{Arg, ArgAction};
|
||||
use hot_reload::{ReloaderReceiver, ReloaderService};
|
||||
use rpxy_certs::{build_cert_reloader, CryptoFileSourceBuilder, CryptoReloader, ServerCryptoBase};
|
||||
use rpxy_lib::{AppConfig, AppConfigList, ProxyConfig};
|
||||
use rustc_hash::FxHashMap as HashMap;
|
||||
|
||||
#[cfg(feature = "acme")]
|
||||
use rpxy_acme::{AcmeManager, ACME_DIR_URL, ACME_REGISTRY_PATH};
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ use crate::{
|
|||
error::{anyhow, ensure},
|
||||
log::warn,
|
||||
};
|
||||
use ahash::HashMap;
|
||||
use rpxy_lib::{reexports::Uri, AppConfig, ProxyConfig, ReverseProxyConfig, TlsConfig, UpstreamUri};
|
||||
use rustc_hash::FxHashMap as HashMap;
|
||||
use serde::Deserialize;
|
||||
use std::{fs, net::SocketAddr};
|
||||
use tokio::time::Duration;
|
||||
|
|
@ -232,7 +232,7 @@ impl ConfigToml {
|
|||
|
||||
// Check unused fields during deserialization
|
||||
let t = toml::de::Deserializer::new(&config_str);
|
||||
let mut unused = rustc_hash::FxHashSet::default();
|
||||
let mut unused = ahash::HashSet::default();
|
||||
|
||||
let res = serde_ignored::deserialize(t, |path| {
|
||||
unused.insert(path.to_string());
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ post-quantum = ["rustls-post-quantum"]
|
|||
http3 = []
|
||||
|
||||
[dependencies]
|
||||
rustc-hash = { version = "2.1.0" }
|
||||
ahash = { version = "0.8.11" }
|
||||
tracing = { version = "0.1.41" }
|
||||
derive_builder = { version = "0.20.2" }
|
||||
thiserror = { version = "2.0.9" }
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
use crate::error::*;
|
||||
use rustc_hash::FxHashMap as HashMap;
|
||||
use ahash::HashMap;
|
||||
use rustls::{crypto::aws_lc_rs::sign::any_supported_type, pki_types, sign::CertifiedKey};
|
||||
use std::sync::Arc;
|
||||
use x509_parser::prelude::*;
|
||||
|
|
|
|||
|
|
@ -10,8 +10,8 @@ mod log {
|
|||
}
|
||||
|
||||
use crate::{error::*, log::*, reloader_service::DynCryptoSource};
|
||||
use ahash::HashMap;
|
||||
use hot_reload::{ReloaderReceiver, ReloaderService};
|
||||
use rustc_hash::FxHashMap as HashMap;
|
||||
use rustls::crypto::CryptoProvider;
|
||||
use std::sync::Arc;
|
||||
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@ use crate::{
|
|||
log::*,
|
||||
server_crypto::{ServerCryptoBase, ServerNameBytes},
|
||||
};
|
||||
use ahash::HashMap;
|
||||
use async_trait::async_trait;
|
||||
use hot_reload::{Reload, ReloaderError};
|
||||
use rustc_hash::FxHashMap as HashMap;
|
||||
use std::sync::Arc;
|
||||
|
||||
/* ------------------------------------------------ */
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
use crate::{certs::SingleServerCertsKeys, error::*, log::*};
|
||||
use rustc_hash::FxHashMap as HashMap;
|
||||
use ahash::HashMap;
|
||||
use rustls::{
|
||||
crypto::CryptoProvider,
|
||||
server::{ResolvesServerCertUsingSni, WebPkiClientVerifier},
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ post-quantum = [
|
|||
|
||||
[dependencies]
|
||||
rand = "0.8.5"
|
||||
rustc-hash = "2.1.0"
|
||||
ahash = "0.8.11"
|
||||
bytes = "1.9.0"
|
||||
derive_builder = "0.20.2"
|
||||
futures = { version = "0.3.31", features = ["alloc", "async-await"] }
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ use crate::{
|
|||
name_exp::{ByteName, ServerName},
|
||||
AppConfig, AppConfigList,
|
||||
};
|
||||
use ahash::HashMap;
|
||||
use derive_builder::Builder;
|
||||
use rustc_hash::FxHashMap as HashMap;
|
||||
use std::borrow::Cow;
|
||||
|
||||
use super::upstream::PathManager;
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ use super::{
|
|||
Upstream,
|
||||
};
|
||||
use crate::{constants::STICKY_COOKIE_NAME, log::*};
|
||||
use ahash::HashMap;
|
||||
use derive_builder::Builder;
|
||||
use rustc_hash::FxHashMap as HashMap;
|
||||
use std::{
|
||||
borrow::Cow,
|
||||
sync::{
|
||||
|
|
|
|||
|
|
@ -11,10 +11,10 @@ use crate::{
|
|||
log::*,
|
||||
name_exp::{ByteName, PathName},
|
||||
};
|
||||
use ahash::{HashMap, HashSet};
|
||||
#[cfg(feature = "sticky-cookie")]
|
||||
use base64::{engine::general_purpose, Engine as _};
|
||||
use derive_builder::Builder;
|
||||
use rustc_hash::{FxHashMap as HashMap, FxHashSet as HashSet};
|
||||
#[cfg(feature = "sticky-cookie")]
|
||||
use sha2::{Digest, Sha256};
|
||||
use std::borrow::Cow;
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ pub struct Globals {
|
|||
|
||||
#[cfg(feature = "acme")]
|
||||
/// ServerConfig used for only ACME challenge for ACME domains
|
||||
pub server_configs_acme_challenge: std::sync::Arc<rustc_hash::FxHashMap<String, std::sync::Arc<rustls::ServerConfig>>>,
|
||||
pub server_configs_acme_challenge: std::sync::Arc<ahash::HashMap<String, std::sync::Arc<rustls::ServerConfig>>>,
|
||||
}
|
||||
|
||||
/// Configuration parameters for proxy transport and request handlers
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ pub struct RpxyOptions {
|
|||
|
||||
#[cfg(feature = "acme")]
|
||||
/// ServerConfig used for only ACME challenge for ACME domains
|
||||
pub server_configs_acme_challenge: Arc<rustc_hash::FxHashMap<String, Arc<rustls::ServerConfig>>>,
|
||||
pub server_configs_acme_challenge: Arc<ahash::HashMap<String, Arc<rustls::ServerConfig>>>,
|
||||
}
|
||||
|
||||
/// Entrypoint that creates and spawns tasks of reverse proxy services
|
||||
|
|
|
|||
|
|
@ -14,12 +14,11 @@ use crate::{
|
|||
name_exp::ServerName,
|
||||
};
|
||||
use hyper_util::server::{self, conn::auto::Builder as ConnectionBuilder};
|
||||
use rustc_hash::FxHashMap as HashMap;
|
||||
use rustls::ServerConfig;
|
||||
use std::sync::Arc;
|
||||
|
||||
/// SNI to ServerConfig map type
|
||||
pub type SniServerCryptoMap = HashMap<ServerName, Arc<ServerConfig>>;
|
||||
pub type SniServerCryptoMap = std::collections::HashMap<ServerName, Arc<ServerConfig>, ahash::RandomState>;
|
||||
|
||||
pub(crate) use proxy_main::Proxy;
|
||||
|
||||
|
|
|
|||
|
|
@ -294,7 +294,7 @@ where
|
|||
let map = server_config.individual_config_map.clone().iter().map(|(k,v)| {
|
||||
let server_name = ServerName::from(k.as_slice());
|
||||
(server_name, v.clone())
|
||||
}).collect::<rustc_hash::FxHashMap<_,_>>();
|
||||
}).collect::<std::collections::HashMap<_,_,ahash::RandomState>>();
|
||||
server_crypto_map = Some(Arc::new(map));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue