Depository of News

Как мы учили Rust притворяться Chrome с постквантовым TLS, патчили и допиливали Unbihex после 104K просмотров на Хабре

habrahabr.ru · world

Привет, Хабр! Когда первая статья про мой легковесный TUN-клиент Unbihex внезапно собрала 104 тысячи просмотров, проект был на версии 0.1.0. Тогда это был дерзкий прототип, который ел 18 МБ оперативки, умел базовый джентльменский набор (VLESS, Vision, REALITY, XHTTP) и решал мою главную боль - избавлял от жирных обёрток со сборщиками мусора. После публикации начался настоящий продакшен: в репозиторий пришли живые пользователи со своими провайдерами, панелями, роутерами, нестандартными конфигами и пулл-реквестами. Быстро выяснилось, что написать быстрый клиент «для себя» и сделать универсальное прокси-ядро, которое не падает на битых пакетах, переживает белые списки мобильных операторов и байт-в-байт дружит с капризами Xray 26 и sing-box - это две совершенно разные задачи. К версиям ядра unbihex-engine 0.1.9 (Rust edition 2024) и клиента 0.2.10 проект вырос в полноценную экосистему. Мы внедрили жёсткую гигиену кода ( unsafe_code = "deny" и clippy::unwrap_used = "deny" , чтобы ни один кривой байт из сети не вызвал панику), добавили десяток протоколов, собрали TUI в духе btop и даже написали свой серверный REALITY-инбаунд. Но самое интересное началось, когда готовые крейты с crates.io перестали справляться и их пришлось вендорить и патчить руками. Под катом - честный разбор сетевых граблей, неочевидных особенностей TCP в Linux и изнанки современных протоколов обхода блокировок. Читать далее

Read full article →