ru
Feedback

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

Rust

Rust

Открыть в Telegram

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

Больше
9 139
Подписчики
+724 часа
+277 дней
+21430 дней
Архив постов
Rust
9 139
Переписал GPU-вычисления на Rust и ускорил обработку в десятки раз. Но часть работы не окупилась Провин Перера рассказал, как
Переписал GPU-вычисления на Rust и ускорил обработку в десятки раз. Но часть работы не окупилась Провин Перера рассказал, как за три недели перевёл speakrs с ONNX Runtime на собственные GPU-ядра, написанные на Rust с помощью NVIDIA cuda-oxide. Библиотека занимается диаризацией речи: определяет, кто и когда говорит в аудиозаписи. По замерам автора на RTX 4090, после всех изменений: - VoxConverse dev: 1236 → 38 секунд. - Earnings-21: 2692 → 75 секунд. - Ошибка диаризации, DER, осталась прежней. Однако отказ от ONNX Runtime сам по себе дал ускорение в 1,81 раза. Остальной прирост нельзя приписывать одной замене рантайма. А вот замена cuDNN и cuBLAS собственными ядрами, по оценке автора, преимущественно не оправдала усилий. Библиотеки NVIDIA оптимизированы под множество GPU, а свои реализации приходилось отдельно настраивать под A100, T4 и RTX 5090. H100 пока осталась без настройки. Бонус полного отказа от этих библиотек - GPU-контейнер примерно на 2 ГБ меньше. Большую часть ядер написали ИИ-агенты. Автор задавал цели, измерял результат и решал, что принимать. Пять дней ушли на сложную систему проверок, принёсшую один PR. После перехода к простой сквозной проверке за восемь часов удалось внедрить больше изменений. Вывод автора: сначала измерьте пользу от замены компонента. Поддерживать собственную версию придётся тоже вам. https://avencera.com/

Rust
9 139
⚡ Minecraft переписывают на Rust: Horizon - альтернативный клиент с открытым кодом. Проект воссоздаёт Minecraft: Java Edition 26.3: от генерации мира и физики до интерфейса, звука и сетевой игры. Доступен для Windows, Linux и Mac на Apple Silicon. По заявлениям разработчиков, совместимость с оригиналом проверяется 281 набором сравнительных тестов. Клиент подключается к ванильным серверам, поддерживает сохранения и перенос совместимых модов из сборок Modrinth и CurseForge. В сети распространяются демонстрации высокой производительности на слабых компьютерах. Однако обещать всем 60 FPS и мгновенную загрузку чанков нельзя: результат зависит от железа, настроек и конкретной сцены. Как попробовать: 1. Установите свою лицензионную Minecraft: Java Edition через официальный лаунчер и один раз запустите версию 26.3. 2. Скачайте лаунчер Horizon и установите доступный релиз. 3. Подготовьте ресурсы из установленной копии игры и запускайте клиент. Horizon – независимый проект, не связанный с Mojang и Microsoft. Код распространяется под MIT, файлы самой Minecraft в комплект не входят. https://playhorizon.dev/

Rust
9 139
Основатель CentOS и Rocky Linux представил Linux-совместимое ядро Ginux, написанное на Rust Грегори Курцер (Gregory Kurtzer), основатель дистрибутивов CentOS и Rocky Linux, представил проект Ginux, развивающий ядро операционной системы на языке Rust, нацеленное на достижение совместимости с ядром Linux. Опубликованный исследовательский прототип уже способен загрузить системное окружение дистрибутивов Alpine с BusyBox и Rocky Linux 10 с systemd в многопользовательском консольном режиме. Код проекта распространяется под лицензией Apache 2.0. Поддерживается работа на системах с архитектурой x86-64. Полный текст: https://opennet.ru/66562/ https://opennet.me/66562/

Rust
9 139
Уязвимости в 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/

Rust
9 139
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

Rust
9 139
📘 На 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 курсов бесплатно — доступны после регистрации

Rust
9 139
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

Rust
9 139
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/

Rust
9 139
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

Rust
9 139
photo content

Rust
9 139
👣 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

Rust
9 139
🔴В 2025 году Россияне заработали 5,3 млрд рублей на арбитраже криптовалют По данным Минфин 32% граждан покинули своё место р
🔴В 2025 году Россияне заработали 5,3 млрд рублей на арбитраже криптовалют По данным Минфин 32% граждан покинули своё место работы поскольку в среднем уже в первый месяц смогли заработать 250 000 рублей, а через 2-3 месяца с легкостью вышли на семизначные числа. Самое смешное, что лишь 8% россиян что-то слышали об этой профессии хотя все инструкции бесплатно лежат на канале Арбитраж Криптовалют Там объясняют, как имея телефон и доступ в интернет заработать свои первые $3000. Причём разжёвывают так доступно, что поймёт даже ребенок. Кстати, на канале сегодня вышла новая рабочая связка! Ссылка для входа — https://t.me/+n8X2lGzXalNkYmRi

Rust
9 139
"am rustacean 🦀 "
"am rustacean 🦀 "

Rust
9 139
🦀 Задача на 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]. Вход считаем корректным, цифры используются только для количества повторений. Что выберешь для решения: стек или рекурсивный разбор? 👇

Rust
9 139
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

Rust
9 139
Ник Матсакис предлагает для 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

Rust
9 139
🔥 Хочешь быстрее расти в 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 Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.

Rust
9 139
photo content

Rust
9 139
👣 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

Rust
9 139
🦀 Кто должен доказывать корректность реализации трейта в 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