ru
Feedback

Не попадитесь на канал ботавода! Telemetrio находит и помечает такие каналы 👉 Хотите видеть метку — оформите подписку

Rust

Rust

Открыть в Telegram

Rust programming language По всем вопросам- @workakkk #VRHSZ

Больше
9 121
Подписчики
-324 часа
+1127 дней
+20330 дней

Загружаем данные

Привлечение подписчиков
окт. '26
октябрь '26
+309
в 41 каналах
сентябрь '26
+229
в 30 каналах
Get PRO
август '26
+293
в 45 каналах
Get PRO
июль '26
+228
в 42 каналах
Get PRO
июнь '26
+174
в 0 каналах
Get PRO
май '26
+433
в 4 каналах
Get PRO
апрель '26
+180
в 0 каналах
Get PRO
март '26
+374
в 26 каналах
Get PRO
февраль '26
+458
в 47 каналах
Get PRO
январь '26
+268
в 109 каналах
Get PRO
декабрь '25
+202
в 6 каналах
Get PRO
ноябрь '25
+274
в 43 каналах
Get PRO
октябрь '25
+344
в 13 каналах
Get PRO
сентябрь '25
+239
в 41 каналах
Get PRO
август '25
+190
в 9 каналах
Get PRO
июль '25
+408
в 73 каналах
Get PRO
июнь '25
+225
в 61 каналах
Get PRO
май '25
+166
в 2 каналах
Get PRO
апрель '25
+167
в 26 каналах
Get PRO
март '25
+118
в 2 каналах
Get PRO
февраль '25
+224
в 41 каналах
Get PRO
январь '25
+232
в 44 каналах
Get PRO
декабрь '24
+243
в 39 каналах
Get PRO
ноябрь '24
+192
в 54 каналах
Get PRO
октябрь '24
+248
в 54 каналах
Get PRO
сентябрь '24
+294
в 182 каналах
Get PRO
август '24
+219
в 40 каналах
Get PRO
июль '24
+266
в 53 каналах
Get PRO
июнь '24
+283
в 55 каналах
Get PRO
май '24
+285
в 37 каналах
Get PRO
апрель '24
+322
в 46 каналах
Get PRO
март '24
+234
в 19 каналах
Get PRO
февраль '24
+301
в 1 каналах
Get PRO
январь '24
+766
в 43 каналах
Get PRO
декабрь '23
+164
в 39 каналах
Get PRO
ноябрь '23
+114
в 32 каналах
Get PRO
октябрь '23
+97
в 1 каналах
Get PRO
сентябрь '23
+236
в 0 каналах
Get PRO
август '23
+1 307
в 0 каналах
Get PRO
июль '23
+239
в 0 каналах
Get PRO
июнь '23
+400
в 0 каналах
Get PRO
май '23
+52
в 0 каналах
Get PRO
апрель '23
+89
в 0 каналах
Get PRO
март '23
+622
в 0 каналах
Get PRO
февраль '23
+67
в 0 каналах
Get PRO
январь '23
+63
в 0 каналах
Get PRO
декабрь '22
+50
в 0 каналах
Get PRO
ноябрь '22
+562
в 0 каналах
Get PRO
октябрь '22
+633
в 0 каналах
Get PRO
сентябрь '22
+127
в 0 каналах
Get PRO
август '22
+840
в 0 каналах
Get PRO
июль '22
+42
в 0 каналах
Get PRO
июнь '22
+68
в 0 каналах
Get PRO
май '22
+243
в 0 каналах
Get PRO
апрель '22
+1 058
в 0 каналах
Дата
Привлечение подписчиков
Упоминания
Каналы
26 октября+6
25 октября+4
24 октября+7
23 октября+9
22 октября+21
21 октября+95
20 октября+6
19 октября+14
18 октября+15
17 октября+38
16 октября+5
15 октября+5
14 октября+10
13 октября+9
12 октября+18
11 октября+3
10 октября+8
09 октября+5
08 октября+2
07 октября+10
06 октября+1
05 октября+3
04 октября+6
03 октября+5
02 октября0
01 октября+4
Посты канала
Уязвимости в Rust-библиотеках zip-rs и librsvg В библиотеке zip-rs, написанной на языке Rust и насчитывающей около 10 млн загрузок в неделю, выявлена уязвимость (CVE-2026-115905), позволяющая создавать архивы, которые выглядят безобидными, но при распаковке из них извлекаются другие, изначально не показанные в списке, файлы. Файлы могут быть размещены в архиве вне структуры Central Directory, из-за чего при просмотре списка файлов показывается одно содержимое, но при распаковке через API ZipStreamReader извлекаются другие файлы. Проблеме присвоен уровень опасности 10 из 10. Уязвимость исправлена в версии zip-rs 9.0.5. Полный текст: https://opennet.ru/66555/ https://opennet.me/66555/

2
BeautifulRust – бесплатный набор навыков, который помогает ИИ-агентам писать более качественный Rust. Проект объединяет реком
BeautifulRust – бесплатный набор навыков, который помогает ИИ-агентам писать более качественный Rust. Проект объединяет рекомендации Google, Microsoft, Rust API Guidelines, Effective Rust и Rust Design Patterns. Когда источники расходятся, автор выбирает подход и объясняет причину. Внутри – навыки для написания и ревью кода, а также конфигурация Clippy для автоматических проверок. Перед сдачей результата агенту предписано запускать форматирование, Clippy с предупреждениями как ошибками, тесты и сборку документации. В авторской оценке на трёх задачах навык повысил результат с 24 до 29 пройденных проверок из 30, расходуя примерно на треть больше токенов. Выборка небольшая, но результат интересный. Работает с Claude Code, Codex, Cursor и другими клиентами Agent Skills. Лицензия – MIT. Установка: npx skills add morganlinton/BeautifulRust https://github.com/morganlinton/BeautifulRust
1 510
3
📘 На Mentorix вышел курс — «Rust-разработчик: подготовка к собеседованию» Хотите на собеседовании спокойно объяснить, откуда
📘 На Mentorix вышел курс — «Rust-разработчик: подготовка к собеседованию» Хотите на собеседовании спокойно объяснить, откуда E0502, чем Send отличается от Sync и как устроен Future? Этот курс — полный путь от диагностики пробелов до пробных собеседований junior, middle и senior. • Владение и заимствование: E0382, E0502, E0597, NLL • Времена жизни: elision, HRTB, variance • Типажи: dyn Trait, object safety, blanket impl • Умные указатели: Box, Rc, Arc, RefCell, Cow • Конкурентность: Send и Sync, Mutex, атомики и Ordering • Async изнутри: Future, Waker, Pin — без tokio • Unsafe и FFI: UB, MaybeUninit, repr(C) • Live-coding: LRU-кэш, трие, Dijkstra, парсер выражений • Карьера: резюме, оффер, торг о зарплате 🎓 Сертификат — добавьте в резюме или LinkedIn 🏷 Скидка 50%, действует 48 часов 12 990 ₽ → 6 495 ₽ ➜ Пройти курс на Mentorix Ещё 25 курсов бесплатно — доступны после регистрации
1 557
4
Rust официально появился в systemd - с жёсткими ограничениями. В основную ветку проекта приняли поддержку новых программ на R+1
Rust официально появился в systemd - с жёсткими ограничениями. В основную ветку проекта приняли поддержку новых программ на Rust. Изменения готовятся для systemd 263. Systemd отвечает за запуск системы и управление службами во многих Linux-дистрибутивах. Теперь часть новых утилит можно разрабатывать на Rust по следующим правилам: - Только самостоятельные компоненты, от которых не зависят другие части systemd. - Сборка через Meson, без Cargo. - Режим `no_std` — без стандартной библиотеки Rust и произвольных сторонних зависимостей. - Взаимодействие с существующим кодом — через C-интерфейсы. Переписывать существующий C-код не планируют. Поддержка Rust опциональна: проект по-прежнему можно собрать без него. Первый запланированный компонент — systemd-keyring-setup. Он будет загружать X.509-сертификаты в хранилища ключей ядра Linux при загрузке. Сама утилита пока находится в отдельном, ещё не принятом PR. Rust постепенно входит в базовую инфраструктуру Linux: через новые компоненты с чёткими границами и общей системой сборки. https://github.com/systemd/systemd/pull/44324
2 242
5
Rust выбирают для связи медицинских устройств: Vector заново разработала на нём стек IEEE 11073 SDC. SDC позволяет приборам р
Rust выбирают для связи медицинских устройств: Vector заново разработала на нём стек IEEE 11073 SDC. SDC позволяет приборам разных производителей обнаруживать друг друга, обмениваться измерениями, состояниями и тревожными сигналами. Это основа для совместной работы оборудования в операционных и реанимации. Почему Rust? По объяснению Vector, безопасность памяти и типов помогает предотвращать распространённые ошибки ещё при разработке, снижая риск части сбоев и уязвимостей. При этом переписывать всё приложение не требуется: стек подключается к существующему коду на C и C++ через FFI. Его можно встроить в устройство или использовать через шлюз. Vector также заявляет рост производительности благодаря оптимизации обработки XML и структуры данных, описывающей состояние прибора. Конкретных результатов бенчмарков компания не привела. Доступность ожидается в первом квартале 2027 года. О сертификации или регуляторном одобрении в анонсе не сообщается. Заметный пример практического внедрения Rust: производитель инженерного ПО выбирает его для компонента, предназначенного работать внутри медицинского оборудования. https://www.vector.com/en/company/press/press-releases/vector-announces-new-rust-based-ieee-11073-sdc-stack-for-the-medical-device-industry/
2 245
6
Rust сократил расходы на CI примерно на 75% - и сознательно оставил лишние сборки компилятора. В интервью Serokell Марко Иени
Rust сократил расходы на CI примерно на 75% - и сознательно оставил лишние сборки компилятора. В интервью Serokell Марко Иени из Rust Foundation объяснил компромисс. Основную экономию дал переход с GitHub large runners на стандартные. По Enterprise-плану проекту доступны до 500 стандартных раннеров одновременно, а большие расходуют ограниченные спонсорские кредиты. Часть тестов разделили между двумя стандартными раннерами. Каждый заново собирает компилятор — вычисления дублируются. Можно собрать один раз и раздать артефакты. Но команда отказалась: такой обмен сделал бы CI медленнее и хрупче. Доступных раннеров хватает, поэтому простота оказалась ценнее экономии CPU. Тот же принцип - в мониторинге: с собственного Prometheus и Grafana перешли на Datadog, поскольку старую систему никто не успевал обновлять. Самый ограниченный ресурс здесь - время инженеров. Небольшая команда, во многом состоящая из волонтёров, не может оптимизировать каждый цент. Хорошая инфраструктура укладывается в бюджет и остаётся посильной в сопровождении. Иногда ради этого стоит выполнять одну и ту же работу дважды. https://serokell.io/blog/the-hidden-challenges-of-rust-infrastructure-interview-with-marco-ieni
2 329
7
Нет текста...
2 648
8
👣 Rust предлагает включить новый trait solver по умолчанию: крупнейшее изменение языка со времён 1.0 В rust-lang/rust открыт
👣 Rust предлагает включить новый trait solver по умолчанию: крупнейшее изменение языка со времён 1.0 В rust-lang/rust открыт PR #164209 от lcnr, и сам автор называет его крупнейшим одиночным изменением Rust после версии 1.0. Важная оговорка: PR ещё не влит, он находится на стадии предлагаемого final comment period. Над новым солвером работали четыре года несколько человек, опираясь на опыт многолетнего Chalk. Он меняет поведение системы типов в пограничных случаях, скорость и сам способ рассуждения о ней. Если предложение одобрят, новый солвер уйдёт в beta, а затем в stable, начиная с Rust 1.101. Beta cutoff назначен на 6 ноября, после него старый солвер удаляют, так что стабилизация может сдвинуться максимум на один релиз. Ближайшая выгода это TAIT и RTN, которые ждали переработки opaque types. Основные плюсы придут позже, с возможностями, доступными только новому солверу. Авторы честно перечисляют недостатки: остались зависания, производительность в среднем хуже, часть диагностик слабая, открыты мелкие баги. Аргументы за выкатку такие: два солвера в компиляторе усложняют код и делят покрытие тестами, работа блокируется ожиданием нового, а новые крейты уже начинают зависеть от некорректного поведения старого. Crater нашёл меньше 500 затронутых крейтов, почти все из-за нескольких корневых, и поломки описаны как ожидаемые. Прогон перформанса на основной метрике числа инструкций заметных изменений не показал. lcnr отдельно благодарит compiler-errors и adwinwhite, без работы которых такая стабилизация, по его словам, вряд ли была бы возможна. Источник: http://github.com/rust-lang/rust/pull/164209
3 270
9
🔴В 2025 году Россияне заработали 5,3 млрд рублей на арбитраже криптовалют По данным Минфин 32% граждан покинули своё место р
🔴В 2025 году Россияне заработали 5,3 млрд рублей на арбитраже криптовалют По данным Минфин 32% граждан покинули своё место работы поскольку в среднем уже в первый месяц смогли заработать 250 000 рублей, а через 2-3 месяца с легкостью вышли на семизначные числа. Самое смешное, что лишь 8% россиян что-то слышали об этой профессии хотя все инструкции бесплатно лежат на канале Арбитраж Криптовалют Там объясняют, как имея телефон и доступ в интернет заработать свои первые $3000. Причём разжёвывают так доступно, что поймёт даже ребенок. Кстати, на канале сегодня вышла новая рабочая связка! Ссылка для входа — https://t.me/+n8X2lGzXalNkYmRi
2 089
10
"am rustacean 🦀 "
"am rustacean 🦀 "
2 814
11
🦀 Задача на Rust: распакуй строку, не запутавшись во вложенности Запись k[текст] означает: повторить содержимое скобок k раз
🦀 Задача на Rust: распакуй строку, не запутавшись во вложенности Запись k[текст] означает: повторить содержимое скобок k раз. Но внутри могут быть другие такие же конструкции. Напиши функцию: fn decode_string(s: String) -> String Она должна проходить эти проверки: assert_eq!(decode_string("2[a]".into()), "aa"); assert_eq!( decode_string("2[2[2[a]]]".into()), "aaaaaaaa" ); assert_eq!( decode_string("2[a]2[b]2[c]".into()), "aabbcc" ); assert_eq!( decode_string("2[abc]3[cd]ef".into()), "abcabccdcdcdef" ); Усложнение: число повторений может быть многозначным, например 12[ab]. Вход считаем корректным, цифры используются только для количества повторений. Что выберешь для решения: стек или рекурсивный разбор? 👇
3 080
12
Imagining how many days it would take to debug these problems in Python or Javascript
Imagining how many days it would take to debug these problems in Python or Javascript
3 114
13
Ник Матсакис предлагает для Rust северную звезду эпохи ИИ-агентов: ноль unsafe-кода Один из ключевых людей в дизайне Rust опу
Ник Матсакис предлагает для Rust северную звезду эпохи ИИ-агентов: ноль unsafe-кода Один из ключевых людей в дизайне Rust опубликовал текст о том, что кодинг-агенты значат для языка. Это письменная версия доклада на REBASE в рамках SPLASH. Сам автор называет содержимое «недопечёнными идеями», так что это видение, а не предложение новых фич. Выводы такие: люди в программировании всё ещё нужны, дизайн языков по-прежнему важен, а Rust хорошо подходит для агентной разработки и может подойти ещё лучше. По производительности аргумент простой. Хорошие значения по умолчанию плюс явные ручки для тонкой настройки. По словам автора, люди, которые раньше вручную оптимизировали криптографический код, теперь обращаются к агентам. Вместе с профайлером вроде dial9 получается цикл: бенчмарк, профиль, агент предлагает правку, PR в репозитории. С надёжностью сложнее. Типы удерживают агента в рамках, но тесты показывают наличие багов, а не их отсутствие, и типы гарантируют лишь отсутствие определённых классов ошибок, а не корректность результата. Тут нужны доказательства. Для Rust уже есть Verus, Creusot, Aeneas и Kani. При этом типы продолжают играть роль, потому что делают доказательства дешевле. &mut даёт гарантию уникальности, и Verus опирается на borrow checker именно ради этого, чтобы солверу было проще. Куда, по мнению Матсакиса, стоит двигаться: более выразительная система типов (view types, внутренние ссылки, даже проверка вроде «в лог не попадают персональные данные»), расширяемый компилятор, чтобы инструменты доказательств не жили на костылях из макросов и привязке к конкретным версиям компилятора, и поддержка доказательства корректности unsafe-кода. Северная звезда: больше никакого unsafe. Это не значит убрать ключевое слово. Это значит уметь доказать, что весь unsafe-код корректен и не приводит к неопределённому поведению. Главной открытой проблемой автор называет дизайн, то есть решение о том, что вообще строить. Ставка на специализированные языки дизайна, которые превращают высокоуровневое намерение в проверки типов, линты или теоремы. Для контекста Матсакис цитирует Дэвида Толная: инженеры Meta в этом году написали первосторонний Rust-кода вдвое больше, чем за предыдущие девять лет вместе взятые. Блог: https://smallcultfollowing.com/babysteps/blog Источник: https://smallcultfollowing.com/babysteps/blog
2 954
14
🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку Окружение решает больше, чем кажется. Собрал папки и каналы, где можн
🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку Окружение решает больше, чем кажется. Собрал папки и каналы, где можно быстрее влиться в нужное направление, следить за трендами и не вариться в своём пузыре. AI: t.me/ai_machinelearning_big_data Python: t.me/pythonl Linux: t.me/linuxacademiya Хакинг: t.me/linuxkalii DevOps: t.me/DevOPSitsec Docker: https://t.me/+90Z5TAyfuNU5YmRi Golang: t.me/Golang_google Rust: t.me/rust_code C++: t.me/cpluspluc C#: t.me/csharp_ci Java: t.me/javatg JavaScript: t.me/javascriptv React: t.me/react_tg Frontend: t.me/front PHP: t.me/phpshka Android: t.me/android_its Мобильная разработка: t.me/mobdevelop Базы данных: t.me/sqlhub Data Science: t.me/data_analysis_ml Big Data: t.me/bigdatai Математика: t.me/data_math Физика: t.me/fizmat Kubernetes: t.me/kubernetc GameDev: https://t.me/gamedev Haskell: t.me/haskell_tg Собеседования и карьера: DS собеседования: t.me/machinelearning_interview Python собеседования: t.me/python_job_interview Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy Папка Frontend: https://t.me/addlist/mzMMG3RPZhY2M2Iy Полезное сверху: ИТ-мемы: t.me/memes_prog Английский для программистов: t.me/english_forprogrammers ИИ и технологии: t.me/vistehno 954 ГБ open-source курсов: https://t.me/+rKBQEMccAA01MTcy ИТ-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy Max Ai: https://max.ru/ai_machinelearning_big_data Max python: https://max.ru/pythonl ТЕХНО: https://max.ru/vistehno Max Go: https://max.ru/Golang_google Max Linux: https://max.ru/linuxkalii Devops: https://max.ru/DevOPSitsec C#: https://max.ru/csharp_ci C++: https://max.ru/cpluspluc SQL: https://max.ru/sqlhub Java: https://max.ru/javatg Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
2 353
15
Нет текста...
3 211
16
👣 Rust предлагает включить новый trait solver по умолчанию: крупнейшее изменение языка со времён 1.0 В rust-lang/rust открыт
👣 Rust предлагает включить новый trait solver по умолчанию: крупнейшее изменение языка со времён 1.0 В rust-lang/rust открыт PR #164209 от lcnr, и сам автор называет его крупнейшим одиночным изменением Rust после версии 1.0. Важная оговорка: PR ещё не влит, он находится на стадии предлагаемого final comment period. Над новым солвером работали четыре года несколько человек, опираясь на опыт многолетнего Chalk. Он меняет поведение системы типов в пограничных случаях, скорость и сам способ рассуждения о ней. Если предложение одобрят, новый солвер уйдёт в beta, а затем в stable, начиная с Rust 1.101. Beta cutoff назначен на 6 ноября, после него старый солвер удаляют, так что стабилизация может сдвинуться максимум на один релиз. Ближайшая выгода это TAIT и RTN, которые ждали переработки opaque types. Основные плюсы придут позже, с возможностями, доступными только новому солверу. Авторы честно перечисляют недостатки: остались зависания, производительность в среднем хуже, часть диагностик слабая, открыты мелкие баги. Аргументы за выкатку такие: два солвера в компиляторе усложняют код и делят покрытие тестами, работа блокируется ожиданием нового, а новые крейты уже начинают зависеть от некорректного поведения старого. Crater нашёл меньше 500 затронутых крейтов, почти все из-за нескольких корневых, и поломки описаны как ожидаемые. Прогон перформанса на основной метрике числа инструкций заметных изменений не показал. lcnr отдельно благодарит compiler-errors и adwinwhite, без работы которых такая стабилизация, по его словам, вряд ли была бы возможна. Источник: http://github.com/rust-lang/rust/pull/164209
1
17
🦀 Кто должен доказывать корректность реализации трейта в Rust: сама реализация или код, который её использует? Нико Матсакис разобрал этот вопрос на примере циклических зависимостей, когда доказательство может замкнуться само на себя. Допустим, есть трейт Magic: Copy. Любой тип с Magic обязан реализовывать Copy. Два подхода: • Модульный: проверяем обязательства при проверке impl. Поэтому impl Magic for String недопустим: String не реализует Copy. • Внешний: разрешаем такой impl, но при его использовании требуем отдельно доказать String: Copy. Реализация есть, воспользоваться ей нельзя. Второй вариант помогал обойти проблему циклических доказательств. Но упирался в unsafe-трейты. Когда автор пишет unsafe impl, остальной код доверяет его гарантиям. Если реализация ошибочно обещает, что Box<T> может содержать нулевой указатель, ответственность лежит на ней. Выходит странная модель: гарантии безопасности у impl принимаем, а выполнение требований супертрейтов заставляем перепроверять вызывающий код. Вывод Нико: реализация должна сама устанавливать выполнение своего контракта. Следующая часть будет о том, как совместить этот подход с циклами. https://smallcultfollowing.com/babysteps/blog/2026/10/10/modular-vs-external-proofs/ #Rust
3 261
18
🦀 В Rust нашли баг, который 11 лет обходил гарантии безопасности памяти. Ошибка позволяет нарушить ограничения времени жизни
🦀 В Rust нашли баг, который 11 лет обходил гарантии безопасности памяти. Ошибка позволяет нарушить ограничения времени жизни при присваивании полю структуры. В результате код без `unsafe` может сохранить ссылку на уже уничтоженные данные, а затем обратиться к ним. В issue есть примеры чтения освобождённой памяти и падения программы. Один из них воспроизводится начиная с Rust 1.4. Разработчики присвоили ошибке высокий приоритет `P-high`. По оценке команды, случайное проявление маловероятно: для показанного нарушения безопасности нужна специально сконструированная реализация Drop. Комментарии ограничили, чтобы предотвратить спам и бесполезные обсуждения. Гарантии Rust тоже зависят от корректности компилятора. Здесь нашли дыру именно в их реализации. https://github.com/rust-lang/rust/issues/164250
7 736
19
👣 Campfire переписали на Rust, почти без ручного Rust. DHH пишет, что сегодня уже гоняет beta-версию Campfire на Rust. Самое
👣 Campfire переписали на Rust, почти без ручного Rust. DHH пишет, что сегодня уже гоняет beta-версию Campfire на Rust. Самое интересное: - код пока получился «уродливым» - стал примерно в 6 раз более многословным - сам перенос, по его словам, практически ничего не стоил - и главное — ему не пришлось напрямую разбираться в Rust-коде То есть AI уже позволяет переносить реальные приложения между языками почти как между разными runtime. Пусть результат пока далёк от красивого production-кода, сам факт показательный: миграция большого приложения на другой язык становится задачей не месяцев, а агентного workflow. https://github.com/basecamp/once-campfire
3 555
20
🦀 1,8 млн ошибок из-за одного пробела: как разработчик собирал Kubernetes Ingress на Rust и Go Автор Silex разделил систему
🦀 1,8 млн ошибок из-за одного пробела: как разработчик собирал Kubernetes Ingress на Rust и Go Автор Silex разделил систему на две части: • Go-контроллер наблюдает за Ingress и EndpointSlice, отслеживая маршруты и адреса бэкендов. • Rust-движок на Tokio принимает трафик и ищет маршруты в конкурентной таблице DashMap. Обработка запросов отделена от взаимодействия с Kubernetes API. Первый нагрузочный тест выглядел обнадёживающе только по счётчику соединений: движок принимал около 55 тысяч в секунду, но не отдавал успешных ответов. Причина оказалась в разборе конфигурации. Вместо JSON-парсера код искал точную подстроку: Ожидал: "host":"silex.local" Получил: "host": "silex.local" Допустимый в JSON пробел ломал поиск. Обработчик молча завершался и закрывал TCP-соединение. Итог: 1,8 млн ошибок чтения. После исправления автор сравнил Silex с NGINX Ingress: K3s, HTTP echo-бэкенд, wrk, 400 соединений, 4 потока, 30 секунд. Silex: 2536 запросов/с. NGINX: 2274. Разница: +11,5%. Но максимальная задержка у обоих была около двух секунд, таймауты тоже остались. У Silex их даже больше: 302 против 286. По объяснению автора, нагрузка упёрлась в Node.js-бэкенд. На момент статьи TLS-терминация, активные проверки бэкендов и Prometheus-метрики ещё были в планах. Самое ценное здесь: увидеть, как устроен небольшой ingress, где ломается взаимодействие компонентов и почему throughput нужно читать вместе с ошибками и задержками. https://dev.to/sysalchemist/how-i-built-a-custom-kubernetes-ingress-in-rustgo-that-outperforms-nginx-by-11-4iag @Golang_google
3 157