Rust Portal
1.83K subscribers
28 photos
4 videos
28 links
Присоединяйтесь к нашему каналу и погрузитесь в мир для Rust-разработчика

Связь: @stepikm
Download Telegram
Rust станет обязательной частью Git 3.0. «В Git 3.0 без Rust ничего работать не будет, потому что он будет обязательным», — говорит разработчик Git Брайан Карлсон.

«Без Rust [сборка Git 3.0] просто упадёт и скажет, что это не поддерживается».

До настоящего времени Git в основном разрабатывался на C.

@RustPortal
👍35🔥115🌚3👎2
Ларс Бергстром (Google) объявил об инвестициях в Rust в размере $350k:

• $250k — в Rust Foundation на интероперабельность языка
• $100k — в инфраструктуру Crater

По его словам, Rust помог снизить число уязвимостей в Android. Приятно видеть продолжение корпоративных инвестиций

@RustPortal
🔥367😍2👌1
Rust 1.90.0 вышел

Основные изменения:


LLD по умолчанию на x86_64-unknown-linux-gnu
Заметное ускорение линковки, особенно для больших проектов и incremental builds. Откат через -C linker-features=-lld.

cargo publish --workspace
Публикация всех crates в workspace одной командой с правильным порядком зависимостей.

x86_64-apple-darwin → Tier 2
Понижение из-за прекращения GitHub macOS x86_64 runners и планов Apple. Билды пока доступны через rustup.

Стабилизированные API:
u{n}::checked_sub_signed, wrapping_sub_signed, saturating_sub_signed, overflowing_sub_signed
Copy и Hash для IntErrorKind
• const контекст: <[T]>::reverse(), математические функции для float
PartialEq между CStr/CString/Cow<CStr>

Изменения совместимости:
• Tier 3 musl targets линкуются динамически по умолчанию
• Небазовые extern "{abi}" формы теперь последовательно отвергаются

https://blog.rust-lang.org/2025/09/18/Rust-1.90.0
👍15❤‍🔥64
⚡️ Borrow Checker: друг, а не враг!

Многие новички в Rust сталкиваются с ошибками от borrow checker и думают, что язык «слишком строгий». На самом деле — это главный защитник вашего кода от утечек памяти и гонок данных. 🦀

🔑 Основные правила:

В любой момент у переменной может быть либо несколько неизменяемых ссылок, либо одна изменяемая.

Ссылка не может жить дольше, чем её владелец (owner).

Все проверки выполняются на этапе компиляции, поэтому ошибки ловятся ещё до запуска программы.

📌 Пример:

Правильно
let mut s = String::from("Hello");
let r1 = &s;
let r2 = &s;
println!("{}, {}", r1, r2); // работает


Неправильно
let mut s = String::from("Hello");
let r1 = &s;
let r2 = &s;
let r3 = &mut s; // ошибка: mutable borrow при активных immutable
println!("{}", r1);


💡 Зачем это нужно?

🔒 Rust предотвращает data race на уровне компилятора.

🛡 Исключает dangling references и утечки памяти.

⚡️ Позволяет писать эффективный и безопасный код без сборщика мусора (GC).
34👍1
# docs․rs: изменение целевых платформ по умолчанию

Сервис документации docs․rs обновил список платформ, для которых по умолчанию собирается документация Rust-библиотек.

Основные изменения:

macOS: aarch64-apple-darwin (Apple Silicon) заменил x86_64-apple-darwin (Intel). Это отражает переход Apple на собственные ARM-процессоры и изменение статуса платформ: ARM теперь Tier 1, x86_64 понижен до Tier 2.

Linux: aarch64-unknown-linux-gnu (ARM64) заменил i686-unknown-linux-gnu (32-bit). Крупные дистрибутивы Linux прекращают поддержку 32-битных систем.

Полный список платформ по умолчанию:
- x86_64-unknown-linux-gnu
- aarch64-apple-darwin
- x86_64-pc-windows-msvc
- aarch64-unknown-linux-gnu
- i686-pc-windows-msvc

Авторы библиотек могут явно указать нужные платформы через метаданные [package.metadata.docs.rs] в Cargo.toml. docs․rs продолжает поддерживать все доступные в Rust платформы.

📖 Подробнее в блоге Rust
👍17
🔧 Универсальный CLI с Clap

Clap — это самый популярный фреймворк для создания CLI приложений в Rust экосистеме. Он используется практически везде: от cargo и rustup до ripgrep и bat. Clap предоставляет декларативный и процедурный API для парсинга аргументов, автоматически генерирует help сообщения и поддерживает автодополнение для всех популярных shell'ов.

💡 Основные моменты:
- Derive макросы для определения CLI через структуры — минимум boilerplate кода
- Автоматическая генерация man страниц и shell completions
- Встроенная валидация аргументов и красивые сообщения об ошибках
- Поддержка субкоманд, флагов, позиционных аргументов и переменных окружения

📌 GitHub: https://github.com/clap-rs/clap
9👏3
🦀 Rust в CodeQL стал общедоступным

GitHub выпустил CodeQL 2.23.3 — и это важно для Rust-разработчиков.

Что нового:

Поддержка Rust теперь доступна всем пользователям GitHub code scanning. Больше не бета, можно использовать в продакшене для поиска уязвимостей.

Первый security query для Rust:
Добавлен rust/insecure-cookie — находит cookies без атрибута Secure, которые могут передаваться по незащищённым каналам.

Пример того, что теперь ловится:
//  Небезопасно
let cookie = Cookie::new("session", token);

// Безопасно
let cookie = Cookie::build("session", token)
.secure(true)
.finish();


Бонус для C/C++:
Режим build-mode: none теперь GA — можно сканировать проекты даже без полной сборки.

Что это значит?
Если используете GitHub Advanced Security — автоматический анализ Rust-кода уже работает. Для остальных — отличный повод попробовать CodeQL локально.

Полный changelog
🔥151
🦀 Цели Rust на вторую половину 2025 года

Команда Rust опубликовала планы на оставшиеся 3 месяца 2025 года, сгруппировав их по 4 флагманским направлениям:

🔹 Beyond the &
— пользовательские смарт-поинтеры станут такими же удобными, как встроенные ссылки. Это откроет дорогу для более эргономичной интеграции с C++ и Python.

🔹 Unblocking dormant traits
— разблокировка возможностей системы трейтов:
• Polonius для новых паттернов заимствования
• Next-gen trait solver готов к стабилизации
• In-place initialization для async fn в dyn Trait

🔹 Faster compilation
— ускорение компиляции на 20-30% через параллелизацию фронтенда и production-ready Cranelift бэкенд. Стабилизация -Zbuild-std для embedded и Rust for Linux.

🔹 Higher-level Rust
— фокус на высокоуровневые сценарии:
• cargo script для однофайловых программ
• ergonomic ref-counting для удобной работы с Rc/Arc

Ежемесячные отчеты о прогрессе будут публиковаться до конца года.

🔗rustblog
👍285🔥1
Forwarded from Mentorix
На Mentorix вышли сразу два новых бесплатных курса — по Go и Rust. Два языка, на которых сегодня пишут самую требовательную инфраструктуру: от Docker и Kubernetes до браузерных движков и системных утилит.

Golang основы
Go — язык от Google с простым синтаксисом и строгой типизацией. Удобная точка входа в backend-разработку. В курсе: синтаксис, типы, структуры, интерфейсы, пакеты и работа с модулями.
Rust — основы языка программирования
Rust — язык для тех, кому важны производительность и надёжность без сборщика мусора. В курсе: установка и структура проекта, компиляция, Cargo, контроль потока выполнения и базовые конструкции языка.

Оба курса полностью бесплатные, проходить можно в своём темпе.

Go
Rust
8
🦀 Rust 1.95 — `if let` guards в match-выражениях

16 апреля состоялся релиз Rust 1.95. Ключевое нововведение — поддержка if let guards в арках match, которая развивает концепцию let chains из версии 1.88.

Ранее для подобной логики требовались вложенные конструкции if let внутри тела арки:

// До 1.95
match msg {
Msg::Data(bytes) => {
if let Ok(text) = str::from_utf8(bytes) {
process(text);
}
}
_ => {}
}

// Начиная с 1.95
match msg {
Msg::Data(bytes) if let Ok(text) = str::from_utf8(bytes) => {
process(text);
}
_ => {}
}


Вторым заметным дополнением стал макрос cfg_select! — компиляционный аналог match по cfg-предикатам. По функциональности он соответствует популярному крейту cfg-if, но теперь доступен из стандартной библиотеки, что позволяет исключить внешнюю зависимость:

cfg_select! {
unix => { fn platform() -> &'static str { "unix" } }
windows => { fn platform() -> &'static str { "windows" } }
_ => { fn platform() -> &'static str { "other" } }
}


Помимо этого, в релизе стабилизированы новые методы атомарного обновления, а также оптимизирована работа str::contains на архитектуре aarch64 за счёт использования NEON.

📎 blog.rust-lang.org/2026/04/16/Rust-1.95.0
🔥16👍51
🦀 RustFS — альтернатива MinIO на Rust

В трендах GitHub держится RustFS — S3-совместимое объектное хранилище на Rust. По заявленным бенчмаркам — в 2.3 раза быстрее MinIO на объектах 4 КБ.

Проект стал особенно актуален после того, как MinIO перевёл свой open-source репозиторий в maintenance-режим.

Главные отличия от MinIO:
— Лицензия Apache 2.0 вместо AGPLv3 — можно свободно встраивать в коммерческие продукты
— 100% совместимость с S3 API: существующие SDK и клиенты работают без изменений

docker run -d -p 9000:9000 -p 9001:9001 \
-v $(pwd)/data:/data \
rustfs/rustfs:latest


Что стоит учитывать: проект пока в alpha/beta, в продакшен не рекомендуется. На больших последовательных чтениях MinIO всё ещё быстрее (~53 против ~23 Гбит/с), распределённый режим официально не зарелижен.

📎 github.com/rustfs/rustfs
👍10
🦀 Rust приходит в ядро CPython

8 апреля команда Rust for CPython опубликовала апрельский отчёт. Гвидо ван Россум публично поддержал инициативу.

Статус: сборка CPython с Rust успешно работает в CI на всех платформах. Идёт проектирование Rust API для CPython.

Как это будет выглядеть: на первом этапе — только опциональные extension-модули. Rust-компилятор при сборке стандартного CPython не потребуется. Вопрос о превращении Rust в обязательную зависимость отложен на отдельный будущий PEP.

Сроки: черновик PEP — июнь–июль 2026, Python 3.16 beta 1 — май 2027, релиз — октябрь 2027.

Главный мотив — безопасность памяти. Каждый use-after-free во внутренностях интерпретатора превращается в уязвимость для всей экосистемы Python.

📎 blog.python.org/2026/04/rust-for-cpython-2026-04
🥰15🤮21👍1🔥1🤯1
📘 На новой платформе Mentorix вышел курс — «Rust для продвинутых»
Уже знакомы с Rust и хотите перейти на следующий уровень? Этот курс — именно то, что нужно, чтобы прокачать свои навыки.

🔍 Что вы получите:
• Глубокое понимание ключевых тем: generics, lifetimes, async, управление памятью
• Решение реальных инженерных задач: параллелизм, системное программирование, архитектура
• Более 200 интерактивных заданий с автопроверкой — всё в браузере, без установки, в удобное для вас время

🎓 Сертификат по завершении — добавьте его в резюме или профиль LinkedIn

🚀 Прокачайте Rust с пользой и удовольствием. Начните уже сегодня и получите скидку 50%, которая действительна в течение 24 часов

👉 Пройти курс на Mentorix

На платформе также есть бесплатные курсы
💩43🤔2🤡1
🦀 Rust 1.96 — копируемые range-типы и `assert_matches!`

28 мая вышел Rust 1.96. Главное — новые range-типы из RFC 3550, которые наконец реализуют Copy.

Старые std::ops::Range напрямую реализуют Iterator, поэтому Copy им сделать было нельзя. В core::range появились новые типы через IntoIterator:

use core::range::Range;

let r: Range<usize> = (0..10).into();
let copy = r; // r всё ещё доступен


Полный переход — в edition 2027.

Второе — стабилизированы assert_matches! и debug_assert_matches!. Показывают значение при падении:

use core::assert_matches::assert_matches;

let result: Result<i32, _> = Err("oops");
assert_matches!(result, Ok(_));
// panic: Err("oops")


Ещё: для WebAssembly undefined-символы теперь hard linker error, закрыты две CVE в Cargo для сторонних реестров.

📎 blog.rust-lang.org/2026/05/28/Rust-1.96.0
👍101
🚀 На платформе Mentorix вышел курс — «Kubernetes: от основ до продакшена»

🐳 Уже работаете с Docker и хотите вырасти из «запустить контейнер локально» в инженера, который держит кластер в проде? Этот курс — про инженерию: как развернуть, масштабировать и эксплуатировать сервисы в Kubernetes так, чтобы они не падали под нагрузкой и переживали отказ узлов.

⚙️ Полный стек: Pods, Deployments, Services, Ingress, ConfigMap и Secrets, тома и StatefulSet, Helm, автоскейлинг (HPA), RBAC, мониторинг через Prometheus + Grafana

🧩 Более 400 интерактивных заданий с автопроверкой — пишете манифесты и команды прямо в браузере

🚀 Финальный проект: рабочее приложение в кластере с балансировкой, автоскейлингом и мониторингом — в портфолио и на собеседования

🏅 Сертификат по завершении — в резюме или LinkedIn

🔥 Скидка 50% только 24 часа

👉 Забрать курс

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

🎁 Также доступны бесплатные курсы с бессрочным доступом:

⚡️ Golang — основы языка

🐳 Docker: первые шаги

🔧 Git для начинающих

🖥 Основы командной строки Linux

📚 Все бесплатные курсы Mentorix
🤮21👎1💩1🤡1
🦀 Burn 0.21 — Rust ML-фреймворк с distributed training

Свежий релиз Burn — deep learning фреймворка на Rust. Главное в 0.21: накладные расходы фреймворка упали до 8 раз, появилось распределённое обучение и новый CPU-бэкенд.

Что нового

Differentiable collectives — нативная поддержка распределённого обучения на нескольких GPU с автоматической синхронизацией градиентов
burn-flex — новый CPU-бэкенд, написанный полностью на Rust, без зависимостей от ndarray. Заточен под WebAssembly, embedded и небольшие модели
burn-dispatch — глобальный механизм выбора бэкенда, шаг к убиранию Backend-generic из пользовательского API
— Ускорены ядра GEMV, top-k и FFT

Почему это интересно

Rust давно претендует стать вторым языком ML — после Python. Burn — один из немногих фреймворков, который реально работает end-to-end: от обучения до деплоя на embedded-устройстве без переписывания кода. Поддерживает CUDA, Metal, Vulkan, WebGPU и теперь нативный CPU.

Стартап Tracel AI, который стоит за Burn, недавно поднял раунд финансирования и запустил Burn-LM — движок инференса для LLM на базе Burn.

📎 burn.dev/blog/release-0.21.0
🔥8👍43🤮2