Rust
8.76K subscribers
508 photos
44 videos
3 files
1.04K links
Rust programming language

По всем вопросам- @workakkk

#VRHSZ
Download Telegram
## Сколько незаконченных Git-репозиториев лежит у вас на диске?

drydock показывает их все в одном терминальном интерфейсе:

- где остались незакоммиченные изменения;
- какие коммиты ещё не отправлены;
- где забыты stash, конфликт или незавершённый rebase;
- какие проекты изменились после последнего тега и готовы к новому релизу.

Инструмент проверяет не только текущую ветку, поэтому забытая работа в локальной feature-ветке тоже попадёт в список.


brew install yetidevworks/drydock/drydock

# или
cargo install drydock


После установки достаточно запустить:


drydock


Есть фильтры, fuzzy-поиск, JSON-вывод, открытие проекта в редакторе и массовый fetch. Состояние репозиториев обновляется автоматически через файловый watcher.

drydock написан на Rust с использованием Ratatui и работает на macOS и Linux.

Полезная утилита для разработчиков, у которых папка Projects давно превратилась в кладбище почти законченных идей.

GitHub:
https://github.com/yetidevworks/drydock
🔥135🥱3🥰2
🔥 Одна строка в конфиге ускорила production-ответ с 126–230 мс до менее чем 9 мс

Paweł Urbanek собрал очень практичный гайд по профилированию Rust, где оптимизации идут не по принципу «что интереснее», а по реальной отдаче.

Из кейсов:

N+1 SQL → 21 запрос превратили в один JOIN, функция ускорилась со 104 до 70 мкс.

Три последовательных HTTP-вызова → tokio::try_join!, итоговое время почти вдвое меньше.

Неправильно настроенный Brotli в maplibre/martin → скорость была всего 27,9 KB/s. Одна правка конфига дала примерно 57x ускорение, а latency упала до <9 мс.

Ещё жёстче кейс с write lock, который держали на всём HTTP round trip. После переноса блокировки P95 для читателей рухнул с 1,11 секунды до 9,42 мкс.

И отдельная классика Tokio: unbounded channel молча накопил 73 сообщения, потому что consumer не успевал. Никакой ошибки, просто медленное движение к OOM.

Полезный порядок из гайда:

сначала SQL и HTTP, потом locks и channels, и только после этого CPU profiling.

Потому что один лишний поход в базу обычно стоит дороже, чем сотни мелких оптимизаций внутри hot loop.

🔗 https://hotpath.rs/blog/profiling-rust-guide

#Rust #Performance #Profiling #Tokio #Backend
👍28🔥15😁84🤔1
🦀 Маленькая команда из Нидерландов сейчас меняет сам Rust изнутри.

Hexcat публикует ежемесячные отчёты о работе над Rust compiler и фактически занимается развитием ядра языка вместе с официальным сообществом.

В последних обновлениях команда работает над тем, что редко попадает в новости, но напрямую влияет на будущее Rust:

новый trait solver, который должен улучшить обработку типов и приблизить стабилизацию новых возможностей;

переработка системы lifetime и region constraints;

развитие const generics;

улучшения rustc, документации и инфраструктуры вокруг компилятора.

Инженеры Hexcatр аботают с самим компилятором, системой типов и стандартной библиотекой Rust. Среди их клиентов и спонсоров - крупные технологические компании, включая Amazon и Google.

Пока весь мир обсуждает новые языки для AI, команды вроде Hexcat делают фундамент: быстрее компиляция, мощнее типовая система и более надёжный Rust для системного программирования будущего.

Маленькая команда. Огромное влияние на один из самых важных языков современности. 🦀

https://hexcat.nl/updates/
🔥63👍187🥰4🤣3😁2🥴1
Rust when you use unsafe
49😁37👍6💯4👾2❤‍🔥1
📡 MQTT прямо в терминале - и без боли.

LazyMQTT - TUI-клиент для просмотра, анализа и публикации MQTT-сообщений.

Что умеет:

- показывает live-дерево топиков;
- хранит историю сообщений;
- умеет удобно отображать JSON, XML и Protobuf;
- поддерживает алерты;
- показывает аналитику трафика;
- позволяет публиковать сообщения прямо из терминала.

Проект написан на Rust и построен на Ratatui.

Для IoT-разработчиков, embedded-инженеров и всех, кто работает с MQTT-брокерами, выглядит как очень удобная альтернатива тяжёлым GUI-клиентам.

GitHub:
https://github.com/ScottFelder/lazymqtt

#Rust #MQTT #IoT #TUI #Terminal #OpenSource
12👍2
This media is not supported in your browser
VIEW IN TELEGRAM
🌳 Как сделать поведение AI предсказуемым: Bonsai строит логику через Behavior Trees

Bonsai — open-source реализация Behavior Trees на Rust для детерминированного AI, робототехники и игровых систем. Недавно у проекта появились и Python bindings.

Вместо огромного количества if/else поведение собирается из узлов: Sequence, Select, If, While, WhenAll, WhenAny, Race. Каждый узел возвращает Success, Failure или Running, а дерево само решает, что выполнять дальше.

Такой подход удобен там, где нужна не «магия» LLM, а жёстко контролируемая логика: NPC, автономные роботы, игровые агенты, навигация и сложные реактивные системы. Долгие задачи можно выносить в фоновые потоки, чтобы дерево не блокировалось.

Для Rust:

bonsai-bt = "*"

Для Python:

pip install bonsai-bt

GitHub: github.com/Sollimann/bonsai
👍17🔥32🥰1
RUSTACEANS_BE_LIKE
😁417💊7❤‍🔥4👍3🤷‍♂1🤣1
Rust теперь проверяет сам себя тем же инструментом, которым разработчики ловят breaking changes в crates.io 🦀

В стандартную библиотеку Rust интегрировали cargo-semver-checks. На это ушли месяцы работы, десятки PR и больше 15 000 строк кода.

В 2020 году нестабильный метод добавили в стабильный trait и сломали async-std на nightly. В 2021-м новый метод BuildHasher нарушил dyn-safety. В 2022-м исправление soundness-проблемы у ChunksMut случайно убрало Send и Sync.

А в марте 2026 года изменение trait привело к тому, что тесты Tokio перестали собираться на Windows. Проблема оказалась достаточно серьёзной для выпуска Rust 1.94.1.

Автор cargo-semver-checks Предраг Груевски пишет, что сам ревьюил эти изменения и вряд ли смог бы заметить ошибки вручную. Их не заметили и более опытные разработчики std.

Самой сложной частью оказалась правильное разделение stable, unstable, const-unstable и default-unstable API, чтобы CI не ругался на нормальные изменения nightly.

Теперь cargo-semver-checks сможет автоматически ловить целый класс таких проблем ещё до того, как они попадут в стабильный Rust.

🔗 http://predr.ag/blog/protecting-the-rust-stdlib-from-breakage

#RustLang #OpenSource #DevTools
31🔥10👏4
🦀 Rust под капотом: владение, async и метапрограммирование — новый курс на Mentorix

Borrow checker всё ещё выглядит загадкой? Курс о том, как Rust устроен изнутри — владение, асинхронность и макросы разбираются до уровня, где догадки заканчиваются.

⚙️ Внутри: владение и заимствование, асинхронность от Future до исполнителя задач, макросы, небезопасный Rust и его инварианты
🧩 Каждая задача компилируется настоящим rustc и проверяется запуском, а не сверкой с текстом
💻 57 уроков · 440 шагов
🎓 Сертификат · доступ навсегда
▶️ Часть уроков открыта — начать можно бесплатно

🏷 −35% по промокоду WELCOME35 — действует 24 часа
12 990 ₽8 444 ₽

Забрать курс со скидкой

━━━━━━━━━━━━━━

Курс предполагает уверенный Rust. Если хотите подтянуть базу, на платформе есть бесплатные курсы:

🦀 Rust — основы языка
🧩 Тренажёр Rust — 70 задач с автопроверкой
Сети для разработчиков: TCP/IP, HTTP, DNS

📚 Все бесплатные курсы Mentorix
💅65
Forwarded from Rust Books
👣 Rust пытается наконец уменьшить раздувающийся `target`.

В nightly Cargo скоро включат экспериментальный режим -Zembed-metadata=no, который убирает лишнее дублирование метаданных внутри .rlib.

Сейчас при сборке библиотеки Rust сначала создаёт .rmeta, чтобы зависимые крейты могли начать компилироваться раньше. А потом те же метаданные ещё раз попадают в итоговый .rlib.

То есть часть данных в target просто хранится дважды.

На тестах эффект получился вполне заметным.

Для serde размер target в release-сборке уменьшился почти на 30%. Для самого Cargo в лучшем случае экономия составила около 33%, почти 300 МБ. В обычном dev-режиме выигрыш скромнее, около 5–8%, потому что там большую часть места съедают debug-информация и incremental compilation.

Пока это только эксперимент для nightly. Cargo Team хочет посмотреть, не сломает ли изменение редкие сценарии, например ручную линковку .rlib.

Проблему огромных target это не решит полностью, но убрать бесплатные дубликаты на диске выглядит как вполне логичное начало.

https://blog.rust-lang.org/inside-rust/2026/08/18/reducing-target-dir-size-on-nightly/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2595❤‍🔥1
⚡️ Переписывание Bun на Rust превращается в очень странный AI-эксперимент

Bun 1.4 задерживается уже около трёх месяцев, и автор Tero Piirainen считает, что проблема намного интереснее обычного сорванного релиза.

За последний месяц в репозитории Bun 15,8 тыс. коммитов сделал robobun, ещё 1,6 тыс. — autofix-ci[bot], а Jarred Sumner — около 790. При этом у проекта накопилось больше 5 тыс. открытых PR.

По сути, Bun стал одним из крупнейших экспериментов: можно ли переписать важную продакшен-кодовую базу на Rust силами AI-агентов, когда человек в основном направляет процесс.

Отдельный вопрос, зачем вообще понадобился полный переход с Zig на Rust. Одним из аргументов была memory safety, но в новой кодовой базе всё ещё много unsafe, поэтому выгода выглядит не такой очевидной.

https://tipiirai.com/writing/bun-rust-rewrite-worries

@rust_code
🔥208🙈6😁4🗿4👍2
Вышел Rust 1.98. Но больше релиза сегодня обсуждают взлом популярного crate

Rust 1.98 уже доступен в stable. Среди заметных изменений - новые algebraic_* методы для f32/f64, которые разрешают более агрессивные оптимизации вычислений, и быстрый format_into для форматирования целых чисел без лишних аллокаций.

Но параллельно в экосистеме произошёл серьёзный supply-chain инцидент.

Были скомпрометированы arrayref 0.3.10 и append-only-vec 0.1.9. В них добавили зависимость proc-macro1, которая во время сборки скачивала и запускала удалённый бинарник на машине разработчика. То есть для заражения было достаточно просто собрать проект с вредоносной версией зависимости.

Особенно неприятен масштаб: arrayref имеет около 245 млн загрузок за всё время, а пострадавшая версия успела попасть в одну из самых популярных цепочек зависимостей Rust. Вредоносные версии уже удалены с crates.io.

Если сегодня собирали Rust-проекты, стоит проверить Cargo.lock: опасна именно arrayref 0.3.10, тогда как 0.3.9 и более ранние версии считаются чистыми.

Подробнее: https://opennet.ru/66108/
🤯20👍166🔥3😈2🙉2👌1🎃1
🔥 Хочешь быстрее расти в 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/books_englishhh
C++: t.me/cpluspluc
C#: t.me/csharp_1001_notes
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

Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
4👍4🔥4💊3🍌1
This media is not supported in your browser
VIEW IN TELEGRAM
Автор `uv` пришёл в OpenAI и сразу ускорил запуск Codex CLI примерно в 25 раз

Астрэл-гуру Rust, стоящий за одним из самых быстрых Python-инструментов uv, после присоединения к OpenAI взялся за производительность Codex CLI.

Результат - время холодного старта сократилось примерно в 25 раз.

На практике разница ощущается сразу: Codex теперь открывается практически мгновенно и субъективно стартует даже быстрее Pi и Claude Code.

Если CLI запускается десятки раз в день, даже несколько сотен миллисекунд быстро превращаются в раздражение.

https://x.com/Machinelearrn/status/2091103150014935526

@rust_code
🔥38👍13😁32🥰2