uk
Feedback

Не попадись на ботовода! Telemetrio знаходить і позначає такі канали мітками 👉 Хочеш бачити мітку, оформляй підписку

Rust

Rust

Відкрити в Telegram

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

Показати більше
9 119
Підписники
-324 години
+1127 днів
+20330 днів
Архів дописів
Rust
9 122
От ML-инференса до прошивки железа — обсуждаем на Rust-митапе с экспертами MWS Как Rust ускоряет инференс ML-моделей, снижает
От ML-инференса до прошивки железа — обсуждаем на Rust-митапе с экспертами MWS Как Rust ускоряет инференс ML-моделей, снижает стоимость продуктов и оживляет микроконтроллеры — расскажем в трёх реальных кейсах. Добавьте в календарь с МТС Link, чтобы не пропустить. В программе:
«Ускоряем инференс ML с Rust» Python — бутылочное горлышком в ML-пайплайнах. Кейс ускорения с Rust в платформе синтеза и распознавания речи
«Как мы снизили стоимость продукта после миграции части стека на Rust» Меньше инцидентов, быстрее фичи, меньше железа. Как получить более стабильный продукт с Rust
«Прошить железо c Rust: ESP32 за 20 минут» Бонусный доклад для тех, кто не работал с электроникой, но хочет оживлять датчики, гаджеты и кастомные устройства с Rust
Когда: 15 октября в 16:00 Где: онлайн Ссылка для регистрации До встречи! Реклама. ООО "МВС". ИНН 7707767501. erid: 2W5zFGw6oEH

Rust
9 122
🍃 Добавить реплику MongoDB, не копируя всю базу: что меняет Atlas Infinite В привычной архитектуре каждый узел replica set х
🍃 Добавить реплику MongoDB, не копируя всю базу: что меняет Atlas Infinite В привычной архитектуре каждый узел replica set хранит полную копию данных. Добавление реплики или изменение размера узла требует перемещения больших объёмов данных. Atlas Infinite разделяет вычисления и хранение. Узлы выполняют запросы, а общий слой хранения, написанный на Rust, отвечает за журнал, страницы данных и долговечность. Вычислительные ресурсы и хранилище масштабируются независимо. Самая интересная деталь: два журнала с разными задачами. • oplog фиксирует логические операции. Запись подтверждается после устойчивого сохранения большинством реплик журнала. • phylog передаёт физические изменения страниц при checkpoint, сохраняя пакетную обработку WiredTiger. То есть подтверждение записи отделено от подготовки страниц для чтения. Новая read replica подключается к общим страницам и догоняет хвост журнала. Ей не нужно сначала копировать всю базу. А данные шифруются на вычислительном узле: общий storage-слой работает с зашифрованным содержимым. Для приложения сохраняются протокол, драйверы и семантика операций. Меняется инфраструктура под базой. Atlas Infinite пока в public preview. Хороший разбор для тех, кому интересны внутренности СУБД: https://muratbuffalo.blogspot.com/2026/10/atlas-infinite-mongodbs-disaggregated.html @sqlhub

Rust
9 122
🦀 Что удивляет в C, если первым языком был Rust? Обычно разработчики переходят от C к Rust. Автор C for Rust Programmers пош
🦀 Что удивляет в C, если первым языком был Rust? Обычно разработчики переходят от C к Rust. Автор C for Rust Programmers пошёл в обратную сторону и собрал нюансы, которые легко пропустить. Например, такая функция выглядит как принимающая массив из трёх элементов:

void inspect(char data[3]) {
    printf("%zu\n", sizeof(data));
}
Но параметр здесь становится указателем. На платформе с 64-битными указателями увидите 8, а не 3. Длина массива в функцию не передаётся. Ещё несколько сюрпризов: • C-строки заканчиваются \0, а strlen() ищет этот байт, проходя по памяти. • long обычно занимает 64 бита в 64-битных Unix-системах и 32 бита в Windows. • malloc() может вернуть NULL, а язык не заставит проверить результат. • Вместо ссылок с проверкой заимствований работают сырые указатели. Полезное чтение для тех, кто пишет FFI или хочет понять, какие гарантии привычно получает от Rust. https://bd103.dev/blog/2026-10-07-c-for-rust-programmers/

Rust
9 122
photo content

Rust
9 122
⚡️ Как запретить ошибку в работе с путями ещё до запуска программы? В Rust путь состоит из разных компонентов: имени папки, к
⚡️ Как запретить ошибку в работе с путями ещё до запуска программы? В Rust путь состоит из разных компонентов: имени папки, корня, . или ... Если функция принимает произвольную строку, ей могут передать .. или абсолютный путь и неожиданно изменить результат объединения. Автор статьи предлагает выделить обычное имя в отдельный тип NormalComponent. Тогда сигнатура говорит сама за себя:

fn join_normal(&self, name: &NormalComponent) -> AbsPath
Функция принимает только компонент имени, а не любой фрагмент пути. Ошибочный вызов отсекается типами, без россыпи проверок внутри функции. Приём простой: если разные варианты enum дают разные гарантии, иногда полезно представить нужный вариант отдельным типом. https://www.schneems.com/2026/09/24/a-type-stronger-than-the-sum-of-its-components/

Rust
9 122
🦀 Burn 0.22: меньше дженериков, быстрее сборка и почти вдвое меньше VRAM в тесте CNN. Фреймворк глубокого обучения на Rust у
🦀 Burn 0.22: меньше дженериков, быстрее сборка и почти вдвое меньше VRAM в тесте CNN. Фреймворк глубокого обучения на Rust убрал параметр бэкенда из пользовательских моделей:

// Было
struct Model<B: Backend> {
    linear: Linear<B>,
}

// Стало
struct Model {
    linear: Linear,
}
Теперь место и способ выполнения выбираются через Device. Изменение модели затрагивает меньше кода при перекомпиляции. Пересборка после правки модели в замерах команды: • CNN: 28,42 → 4,57 с, ускорение в 6,2 раза. • Transformer: 14,73 → 1 с, ускорение в 14,7 раза. В тесте обучения CNN на RTX 4050 Laptop, FP32 пропускная способность выросла на 80%, а пиковая VRAM после прогрева снизилась с 956 до 486 МиБ. Для Transformer экономия памяти составила около 18%. Это результаты конкретных тестовых моделей. Также добавили LoRA и QLoRA, раннюю поддержку экспорта в ONNX, удалённые вычисления и повторное исполнение GPU-графов. Обновление ломает совместимость API: Candle удалён, NdArray и LibTorch объявлены устаревшими. https://tracel.ai/blog/release-0.22.0/ @machinelearning_ru

Rust
9 122
🦀 mold переписали с C++ на Rust Вышел mold 3.0, первая Rust-версия быстрого линкера для Unix. Он объединяет скомпилированные
🦀 mold переписали с C++ на Rust Вышел mold 3.0, первая Rust-версия быстрого линкера для Unix. Он объединяет скомпилированные части программы в исполняемый файл или библиотеку и помогает сократить ожидание при сборке. По данным разработчиков, после переписывания скорость осталась на уровне C++-версии. Сохранились параметры командной строки и поддерживаемые архитектуры, а сборка самого mold переехала с CMake на Cargo. Обработка повреждённых файлов стала безопаснее: обращения за границы памяти теперь проверяются. Следующая цель проекта — улучшить совместимость с GNU ld, чтобы mold мог стать линкером по умолчанию в Linux-дистрибутивах. https://github.com/rui314/mold

Rust
9 122
🦀 Rust дайджест за неделю: новый релиз, быстрее компилятор и собственные зелёные потоки ⚡ Rust 1.99.0 вышел Теперь можно писать функции с переменным числом аргументов и C ABI прямо на Rust. Стабилизированы Vec::into_parts и Vec::from_parts для работы с буфером вектора. https://blog.rust-lang.org/2026/10/01/Rust-1.99.0/ 🔢 Const generics получают новый дизайн На nightly развивается Generic Const Arguments, будущая замена generic_const_exprs. Больше возможностей для выражений с generic-параметрами, но пока с ограничениями: арифметика вроде N + 1 ещё не поддерживается в gca!. https://blog.rust-lang.org/inside-rust/2026/10/02/generic-const-args-and-you/ 🧵 Зелёные потоки своими руками Учебный runtime менее чем в 1000 строк: собственные стеки, сохранение регистров и переключение контекста на ARM64. Отличный разбор того, как несколько задач делят потоки ОС. https://dzania.github.io/green-threads-from-scratch/ 🚀 Ускорение rustc становится работой на полный день Ник Нетеркоут присоединился к Hexcat для оптимизации компилятора. За предыдущие два месяца команда сократила среднее время компиляции в бенчмарках на 4,57%. https://nnethercote.github.io/2026/09/30/how-to-speed-up-the-rust-compiler-in-september-2026.html 📟 Rust без операционной системы Embassy позволяет запускать `async`-задачи прямо на микроконтроллерах, без традиционной RTOS. Таймеры, сеть, USB и работа с периферией уже входят в экосистему. https://github.com/embassy-rs/embassy 🤖 Rustler запустил MCP-сервер Поиск Rust-вакансий, репозиториев, issues и событий прямо из Claude, Cursor и других MCP-клиентов. https://mcp.rustler.in/mcp/

Rust
9 122
Одна задача, три языка: Rust, C# или C++? В курсе Google *Comprehensive Rust* есть упражнение: найти длину трёхмерного вектор
+2
Одна задача, три языка: Rust, C# или C++? В курсе Google *Comprehensive Rust* есть упражнение: найти длину трёхмерного вектора, а затем нормализовать его. Формула одна: √(x² + y² + z²). После этого каждую координату делим на полученную длину. На скриншотах хорошо видна разница в стиле: - Rust: iter().fold() собирает сумму квадратов, iter_mut() меняет координаты. - C#: ReadOnlySpan для чтения, Span для изменения и обычный foreach. - C++: std::vector, цикл по значениям для расчёта и по ссылкам для изменения. Для тех, кто пишет на C#: Rust fold(0.0, ...) по смыслу близок к LINQ Aggregate(0.0, ...): оба сворачивают последовательность в одно значение через аккумулятор. Чей вариант вам понятнее с первого взгляда? @csharp_ci

Rust
9 122
Это не строка
Это не строка

Rust
9 122
Выпуск Rust 1.99.0. Microsoft перевёл Rust в число первичных языков Опубликован релиз языка программирования Rust 1.99, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки). Подробнее: https://opennet.ru/66386/ https://opennet.me/66386/

Rust
9 122
🦀 Rust 1.99 научился определять C-совместимые variadic-функции Теперь в стабильном Rust можно писать функции с extern "C" и
🦀 Rust 1.99 научился определять C-совместимые variadic-функции Теперь в стабильном Rust можно писать функции с extern "C" и переменным числом аргументов через .... Раньше Rust умел вызывать такие C-функции, например printf, а теперь их можно реализовывать прямо на Rust. Что появилось: - extern "C" fn(... ) - VaList, ABI-совместимый с C va_list - VaArgSafe для контроля типов аргументов - поддержка C-unwind Особенно полезно для FFI, системного кода и библиотек, которые должны экспортировать C API. Фича стабилизирована в Rust 1.99.0, релиз вышел 1 октября. rustup update stable blog.rust-lang.org/2026/10/01/Rust-1.99.0/

Rust
9 122
ИИ-агенты могут разгонять Rust-код быстрее SOTA-библиотек Макс Вулф провёл серию экспериментов с Claude, Codex и GPT-6 Astra,
ИИ-агенты могут разгонять Rust-код быстрее SOTA-библиотек Макс Вулф провёл серию экспериментов с Claude, Codex и GPT-6 Astra, заставляя агентов не просто писать код, а итеративно оптимизировать его по бенчмаркам, пока ускорение не перестанет расти. Схема простая: - фиксируем baseline; - ставим измеримую цель, например минимум +20% скорости; - после каждого изменения запускаем criterion; - запрещаем unsafe и манипуляции с тестами; - отдельно проверяем качество результата; - подключаем несколько subagents для поиска альтернативных оптимизаций. Результаты получились серьёзные. Rust-реализация UMAP оказалась: - в 4-15 раз быстрее `umap-learn` - в 2-4 раза быстрее `umap-rs` - суммарное ускорение относительно первоначальной реализации достигало 7,5-32x Но есть важный нюанс: агенты умеют читерить. В одном из экспериментов Claude показал ускорение в 34 500 раз, просто отключив физический движок. Поэтому для таких систем критически нужны: - benchmark-gates; - regression-тесты; - quality-checks; - жёсткие ограничения на допустимые изменения. https://minimaxir.com/2026/09/agentic-iteration/

Rust
9 122
🦀 Qt открывает Rust полноценный путь к кроссплатформенному UI Qt представила Qt Bridge for Rust = слой, который позволяет пи
🦀 Qt открывает Rust полноценный путь к кроссплатформенному UI Qt представила Qt Bridge for Rust = слой, который позволяет писать логику приложения на Rust и напрямую подключать её к Qt Quick/QML без ручного FFI и C++-кода в проекте. Что это даёт: - Rust для application logic; - QML для интерфейса; - hardware acceleration; - Linux, macOS и Windows; - безопасный Rust API; - интеграцию через привычные struct, traits и attribute macros. Под капотом bridge генерирует Qt-обёртки для Rust-типов на этапе компиляции, поэтому их можно использовать прямо из QML. Сейчас Rust Bridge находится в public beta. Пока для сборки всё ещё нужен C++ toolchain и qmake, но пользовательский код при этом остаётся полностью без C++. По сути, Qt предлагает Rust-разработчикам зрелый UI-стек вместо необходимости ждать, пока нативные Rust GUI-фреймворки догонят Qt по возможностям. Статья: https://www.qt.io/blog/rust-ui-framework-via-bridging-technology

Rust
9 122
Как создать пустой vector по-гениальному
Как создать пустой vector по-гениальному

Rust
9 122
🦀 Как доказать, что Rust-код работает правильно: Amazon рассказывает о Verus Rust предотвращает многие ошибки работы с памятью, но программа всё ещё может вернуть неверный результат. Verus позволяет проверить, что реализация соответствует формально заданным требованиям для всех допустимых входных данных. Разработчик описывает прямо в исходниках: * requires - условия перед выполнением функции. * ensures — свойства результата. * Инварианты циклов и вспомогательные доказательства. Дальше Verus автоматически проверяет доказательство, а разработчик при необходимости помогает ему. В статье есть показательный пример с бинарным поиском. Недостаточно потребовать: «Если вернулся индекс, по нему находится нужный элемент». Такому условию соответствует функция, которая всегда возвращает None. Нужно добавить второе требование: если вернулся `None`, искомого элемента действительно нет в массиве. Amazon уже использует Verus для проверки ключевых примитивов Nitro Isolation Engine, отвечающего за изоляцию виртуальных машин. Инструмент также позволяет доказывать свойства конкурентного кода и безопасность поддерживаемых конструкций unsafe. Гарантии относятся к заданной спецификации и принятым допущениям: полнота самих требований остаётся ответственностью разработчика. 📖 https://www.amazon.science/blog/developing-provably-correct-rust-code-with-verus #Rust #Разработка #FormalVerification

Rust
9 122
❌В IT сейчас кризис джунов, но только не в кибербезе. ❗️Рынку не хватает 50 000 специалистов. В информационной безопасности -
❌В IT сейчас кризис джунов, но только не в кибербезе. ❗️Рынку не хватает 50 000 специалистов. В информационной безопасности - аномальный кадровый голод. Компании готовы брать людей без опыта и растить их внутри, потому что масштаб кибератак растет в геометрической прогрессии, а 96% бизнеса имеют критические уязвимости. Но как понять, подходит ли вам эта сфера, не тратя месяцы и сотни тысяч на обучение? ✅ Начните с базы. 🦔 Академия CyberYozh открыла доступ к бесплатному курсу Кибербезопасность в цифровой эре. Это тест-драйв профессии через призму вашей личной безопасности. Вы узнаете: 🛡 Как устроены современные атаки и почему данные утекают терабайтами. 🛡 Как мыслят хакеры и безопасники. 🛡 С чего начать зачистку собственного цифрового следа. Пройдите бесплатную базу, защитите свои аккаунты и решите - возможно, кибербез - это та самая карьера, которую вы искали. 👉 Начать погружение бесплатно

Rust
9 122
Rust без аллокатора: `fff` снизил пиковое потребление памяти через `mmap` Во время тестирования fff обнаружилось, что при соз
Rust без аллокатора: `fff` снизил пиковое потребление памяти через `mmap` Во время тестирования fff обнаружилось, что при создании большого Vec<u64> процесс потребляет заметно больше оперативной памяти, чем требуется для индекса. Причиной оказался аллокатор, который мог резервировать лишнюю память при работе с крупными буферами. Теперь на Unix-системах fff выделяет память напрямую через mmap: * рассчитывает точный объём памяти * округляет его до размера системной страницы * создаёт приватное анонимное отображение * работает с данными через *mut u64 * освобождает память вызовом munmap На остальных платформах по-прежнему используется обычный Vec<u64>. В результате fff запрашивает у ядра ровно столько страниц, сколько необходимо для хранения и обработки индекса.

Rust
9 122
photo content