Repository navigation
v0.1.2
⚡ Tachyon Core v0.1.2
Независимое высокопроизводительное сетевое ядро для OpenWrt на чистом Rust
Выпуск tachyon-core v0.1.2 — двенадцатый релиз независимого высокопроизводительного сетевого ядра маршрутизации и проксирования на чистом Rust для роутеров под управлением OpenWrt.
Релиз 0.1.2 включает полноценное мультиплексирование режимов XHTTP packet-up и stream-up поверх единого пула HTTP/2 соединений (H2Pool / XMUX) по эталону Xray-core, адаптивный аппаратный профиль (HardwareProfile) с автоматическим определением класса ОЗУ роутера и защитой от нехватки памяти (MEMORY_PRESSURE), новый серверный инбаунд MASQUE (RFC 9484 CONNECT-IP поверх HTTP/3 QUIC), многопоточный пул туннелей WireGuard / AmneziaWG (WgPool) и ускорение трактов Mieru / AnyTLS, поддержку сертификатов X.509 v1 для REALITY и пиннинга ключей (PinVerifier), неблокирующий connect в dialer с таймаутом half-close в relay, а также корректную обработку URL-кодированных слэшей (%2F) в именах узлов и групп Clash API.
🌟 Ключевые нововведения и исправления
- 🌐 XHTTP поверх HTTP/2 (
packet-upиstream-upвH2Pool/ XMUX):- Снято принудительное сужение ALPN до
http/1.1для режимовpacket-upиstream-up: при согласованииh2поток скачивания (GET) и секвенсированные пакеты отправки (POST) мультиплексируются как HTTP/2 стримы внутри одного соединения изH2Pool(XMUX), как в эталонном Xray-core. - Устранено открытие двух отдельных TCP+TLS сессий на каждый
packet-upзапрос к серверам с поддержкой HTTP/2, что радикально ускорило установку соединения и убрало таймауты при пакетных потерях и DPI-троттлинге TLS-хендшейков. - В
H2Pool::acquireисправлена гонка регистрацииNotify::notified()(enable()до освобождения мьютекса), добавлено автоматическое вытеснение (evict) закрытых пиром H2-соединений с прозрачным повтором и RAII-счётчик активных стримов (CounterGuard). - В
PostWriterдля HTTP/1.1 повторная попытка после ошибки на переиспользуемом соединении теперь гарантированно открывает свежее соединение (fresh_connection) и корректно освобождает слот вxmux::Poolна всех путях ошибок. - В
XhttpConn::poll_shutdownдобавлено ожидание сброса буфераPacketsUp(poll_flush) перед закрытием пайпа, а закрытие стороны записи больше не обрывает фоновую задачу чтения (dl_task) до закрытия самого соединения.
- Снято принудительное сужение ALPN до
- 🧠 Адаптивный аппаратный профиль (
HardwareProfile) и защита памяти (MEMORY_PRESSURE):- Реализован модуль
hardwareс автоопределением класса памяти устройства при старте (Constrained≤ 128 МиБ,Router≤ 512 МиБ,Midrange≤ 2 ГиБ,DesktopServer> 2 ГиБ) по/proc/meminfoи лимитамcgroup. - Размеры буферов
relay, окон HTTP/2 (h2io), сокетовsmoltcp,splice-пайпов и ёмкость пулов автоматически масштабируются под доступное ОЗУ роутера с сохранением приоритета ручных переменныхTACHYON_*. - Добавлен lock-free детектор давления памяти (
is_memory_pressured/refresh_memory_pressure), мгновенно освобождающий буферы вместо возврата в пул при дефицитеMemAvailable.
- Реализован модуль
- 🚀 Серверный инбаунд MASQUE (RFC 9484 CONNECT-IP over HTTP/3) и виртуальный стек
smoltcp:- Реализован серверный инбаунд
masque, принимающий HTTP/3 QUIC-соединения с Extended CONNECT, датаграммами и анонсом маршрутов (ROUTE_ADVERTISEMENT) и бриджующий клиентские IP-пакеты вRouter. - Выделен общий виртуальный IP/TCP-стек
smoltcp(new_virtual_ip_iface,accept_virtual_tcp_packet,pump_virtual_tcp_sessions), совместно используемый инбаундамиtun,fptnиmasque.
- Реализован серверный инбаунд
- ⚡ Многопоточный пул WireGuard / AmneziaWG (
WgPool) и оптимизация Mieru / AnyTLS:- В
wireguardиamneziawgвнедрён пул параллельных туннельных сессий с распределением потоков, пакетной обработкойnoiseи векторнымfastchacha. - Переработаны тракты данных и буферизация кадров в
mieru,anytls,shadowtls,shadowsocksиvmessдля снижения числа системных вызовов и копирований на горячем пути.
- В
- 🔒 TLS: поддержка сертификатов X.509 v1 в REALITY и
PinVerifier:- Добавлена поддержка верификации самоподписанных сертификатов X.509 v1 без тега версии (генерируемых Go
x509.CreateCertificateна серверах Xray/sing-box REALITY) с проверкой подписи Ed25519 вCertificateVerify. - В
tls_clientиcore-tls::verifyподключёнPinVerifierдля привязки поcertificate_sha256иcertificate_public_key_sha256.
- Добавлена поддержка верификации самоподписанных сертификатов X.509 v1 без тега версии (генерируемых Go
- 🔍 Clash API: поддержка слэша (
/,%2F) в названиях прокси и групп:- Классификация маршрутов
classify_with_uiпереведена на разбор сырого URL-пути до вызоваpercent_decode, а декодирование выполняется отдельно для извлечённого сегмента имени (Route::Proxy,Route::Delay) с сохранением защиты от path traversal (%2e%2e) в/ui. - Устранена ошибка
404 Not Foundпри замере задержки (/proxies/{name}/delay,/group/{name}/delay) и переключении узлов, содержащих символ/в названии (например,до 10 Гбит/силиGroup/A).
- Классификация маршрутов
- 🛡️ Неблокирующий
connectвdialerи таймаутhalf-closeвrelay:- Переведён TCP
connectна неблокирующий режим с явным контролем таймаута соединения (включая таймаутdial_tcpна платформе Windows), что исключает зависание воркеров рантайма на «чёрных дырах» маршрутизации. - В
relayдобавлен таймаут на стадиюhalf-close, предотвращающий зависание задач и утечку файловых дескрипторов при полузакрытых соединениях.
- Переведён TCP
📦 Контрольные суммы бинарников (SHA-256)
04b5118409612ec15fa64550873e94a282c3b121dfbf7c07ebc0211c565a023f ./tachyon-core-aarch64-v0.1.2
16ae0448940ee31b36b7db24620ad0c5b24d1c38a8e8c3070691a491b6d105b5 ./tachyon-core-armv6-v0.1.2
0773995ebc2ab6c0a41f216d1223912f704306cce8269ea8b0f25c04ed4ca632 ./tachyon-core-armv7-v0.1.2
331ccb7eec314faf905faa404527bf31e63d1c99fa25401db0d458770a75d59d ./tachyon-core-darwin-amd64-v0.1.2
fcac39050cf923ee33190f31cf524667823b0aa321acf5cf4744696029b5a5e4 ./tachyon-core-darwin-arm64-v0.1.2
b7712789ae5c8127bd7f295b345f1d9daed0999ca4f15dbf3f91dc6afde36736 ./tachyon-core-linux-amd64-v0.1.2
d2784c662f7295f376cc9221aac329d4ec7a0578a5ac63839e13954dd684adcf ./tachyon-core-mips-v0.1.2
bdd95efc42e160a4e3af59c9571caa0895d3622d832bfe3bda48dd9a612ea424 ./tachyon-core-mipsel-v0.1.2
0401ddad7106b9c647b45c07a1885edeeb864c76c50dff17603917fdd03068cf ./tachyon-core-riscv64-v0.1.2
626f7e1a384aa78f654a45d46a1f66abcc191e6165d92243eeef801078b957e7 *./tachyon-core.exe
08b8fc931d383c502abe97e1447789205d115c3335b46c43dc7bec2a6c6fe300 ./tachyon-core-x86_64-v0.1.2
Full Changelog: v0.1.1...v0.1.2