feat(mini): add compact native EasyTier client (#2479)

Add a native EasyTier proof-of-concept binary with TCP and UDP
transports, TUN, UDP hole punching, AES-GCM, and a read-only RPC
portal.

Introduce a release-derived mini profile and musl linker policy so
x86_64, big-endian MIPS, and little-endian MIPS stay below the strict
5,000,000-byte target without UPX.
This commit is contained in:
KKRainbow
2026-08-09 19:43:30 +08:00
committed by GitHub
parent 1e40350c89
commit d375d7e455
47 changed files with 1688 additions and 302 deletions
+2 -2
View File
@@ -1,8 +1,8 @@
//! Static configuration schema plus the live runtime configuration store.
#[cfg(feature = "management")]
#[cfg(feature = "web-client")]
pub mod api;
#[cfg(any(feature = "management", feature = "browser-config"))]
#[cfg(any(feature = "web-client", feature = "browser-config"))]
pub mod api_input;
#[cfg(all(
feature = "browser-config",
+17
View File
@@ -95,6 +95,23 @@ impl CoreRuntimeConfigStore {
.send_modify(|version| *version += 1);
}
pub(crate) fn replace_with_current(
&self,
mut config: CoreInstanceRuntimeConfig,
merge: impl FnOnce(&CoreInstanceRuntimeConfig, &mut CoreInstanceRuntimeConfig),
) -> Arc<CoreInstanceRuntimeConfig> {
let _update = self.inner.update.lock();
let current = self.inner.snapshot.load_full();
merge(&current, &mut config);
let config = Arc::new(config);
self.inner.snapshot.store(config.clone());
self.inner.peer_changes.send_modify(|version| *version += 1);
self.inner
.service_changes
.send_modify(|version| *version += 1);
config
}
pub fn update_services(&self, update: impl FnOnce(&mut CoreRuntimeConfig)) {
let _update = self.inner.update.lock();
let mut config = self.inner.snapshot.load_full().as_ref().clone();
+1 -1
View File
@@ -624,7 +624,7 @@ impl TomlConfig {
}
}
#[cfg(feature = "management")]
#[cfg(feature = "web-client")]
mod snapshot;
impl ConfigLoader for TomlConfig {