Rust Portal
رفتن به کانال در Telegram
Присоединяйтесь к нашему каналу и погрузитесь в мир для Rust-разработчика Связь: @stepikm
نمایش بیشتر1 742
مشترکین
-124 ساعت
-47 روز
-1630 روز
آرشیو پست ها
1 742
📘 На Stepik вышел курс — «Rust для профессионалов»
Уже уверенно пишете на Rust и готовы к новым вызовам? Этот курс — именно то, что нужно, чтобы вывести свои навыки на экспертный уровень.
🔍 Что вы получите:
• Глубокое понимание ключевых тем: generics, lifetimes, async, управление памятью
• Решение реальных инженерных задач: параллелизм, системное программирование, архитектура
• 150 интерактивных заданий с автопроверкой — всё в браузере, без установки, в удобное для вас время
🎓 Сертификат по завершении — добавьте его в резюме или профиль LinkedIn
🚀 Прокачайте Rust с пользой и удовольствием. Начните уже сегодня и получите скидку 25%, которая действительна в течение 48 часов
👉 Пройти курс на Stepik
1 742
🦀 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 локально.
Полный changelog1 742
🔧 Универсальный 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
1 742
# 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 платформы.
📖 Подробнее в блоге Rust1 742
⚡️ 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!("{}", r3);
💡 Зачем это нужно?
🔒 Rust предотвращает data race на уровне компилятора.
🛡 Исключает dangling references и утечки памяти.
⚡️ Позволяет писать эффективный и безопасный код без сборщика мусора (GC).1 742
📘 На Stepik вышел курс
“Safe Rust: Build a Real Backend”
Курс подойдёт разработчикам, которые уже знакомы с основами Rust и хотят научиться создавать реальные backend-сервисы. Обучение построено вокруг фреймворка Axum и асинхронной работы с базой данных через SQLx. Всё максимально приближено к реальным задачам и архитектурным практикам.
Что включает курс:
• Создание полноценного HTTP-сервера на Axum
• Интеграция с PostgreSQL через SQLx
• Работа с миграциями, структура проекта, конфигурации
• Асинхронное программирование
• Покрытие типичных backend-задач: маршрутизация, обработка ошибок, безопасность
Дополнительно:
• Проверка решений и пошаговые инструкции
• Поддержка преподавателя (менторство) — можно задавать вопросы, получать обратную связь
🎓 Сертификат по завершении — добавьте его в резюме или профиль LinkedIn
🚀 Начните уже сегодня и получите скидку 25%, которая действительна в течение 48 часов
Курс подойдет тем, кто имеет базовые знания синтаксиса языка Rust. Опыт с SQL — желателен, но не обязателен.
👉 Записаться на курс
1 742
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.01 742
Ларс Бергстром (Google) объявил об инвестициях в Rust в размере $350k:
• $250k — в Rust Foundation на интероперабельность языка
• $100k — в инфраструктуру Crater
По его словам, Rust помог снизить число уязвимостей в Android. Приятно видеть продолжение корпоративных инвестиций
@RustPortal
1 742
+2
Rust станет обязательной частью Git 3.0. «В Git 3.0 без Rust ничего работать не будет, потому что он будет обязательным», — говорит разработчик Git Брайан Карлсон.
«Без Rust [сборка Git 3.0] просто упадёт и скажет, что это не поддерживается».
До настоящего времени Git в основном разрабатывался на C.
@RustPortal
1 742
Пишем свою SQLite
Годная серия статей "Пишем свою SQLite на Rust"
- Часть 1: Вывод списка таблиц
- Часть 2: Сканирование больших таблиц
- Часть 3: Основы парсинга SQL
- Часть 4: Чтение метаданных таблиц
- Часть 5: Выполнение запросов
- Часть 6: Страницы переполнения
@RustPortal
1 742
📘 На Stepik вышел курс — «Rust для продвинутых»
Уже знакомы с Rust и хотите перейти на следующий уровень? Этот курс — именно то, что нужно, чтобы прокачать свои навыки.
🔍 Что вы получите:
• Глубокое понимание ключевых тем: generics, lifetimes, async, управление памятью
• Решение реальных инженерных задач: параллелизм, системное программирование, архитектура
• Более 200 интерактивных заданий с автопроверкой — всё в браузере, без установки, в удобное для вас время
🎓 Сертификат по завершении — добавьте его в резюме или профиль LinkedIn
🚀 Прокачайте Rust с пользой и удовольствием. Начните уже сегодня и получите скидку 25%, которая действительна в течение 48 часов
👉 Пройти курс на Stepik
1 742
Лучшие практики конструкторов в Rust
Шаблоны конструкторов, которыми должен владеть каждый уважающий себя растовик, чтобы не выглядеть новичком
https://blog.cuongle.dev/p/constructor-best-practices-in-rust
@RustPortal
1 742
100 упражнений по Rust прямо в RustRover
Теперь весь курс Луки Пальмери, который помог тысячам разработчиков освоить язык, встроен прямо в IDE от JetBrains
Как это работает: короткий кусочек теории → сразу практическое задание. Всего 100 упражнений, от базовых конструкций (if, match, циклы) до трейтов, управления памятью, структур данных и конкурентности. В процессе вы собираете рабочую мини-систему управления проектами
RustRover полностью бесплатен для обучения, так что можно просто поставить и начать.
Тут подробнее: тык
@RustPortal
1 742
С чего начать менторство над начинающими специалистами?
Станьте экспертом в Яндекс Практикуме
Яндекс Практикум — сервис онлайн-образования, где получают навыки для старта и роста в IT. А наши эксперты — практикующие специалисты из разных сфер и компаний.
Это хорошая возможность для разработчиков с опытом использования RUST от 2-х лет.
Вы сможете:
- реализовать свой потенциал и влиять на качество образования в индустрии,
- выполнять свои задачи удалённо, в комфортной атмосфере и иметь дополнительный доход,
- быть частью большого комьюнити экспертов и участвовать в мероприятиях.
А еще хороший способ снова влюбиться в профессию разработчика и влюбить других 👌
Познакомиться с задачами каждой роли и оставить отклик можно по ссылкам:
→ Наставник «Rust для действующих разработчиков»
→ Ревьюер на курс «Rust для действующих разработчиков»
1 742
Глубокое погружение во взаимодействие памяти между Rust и C
Детальное исследование того, что происходит при конфликте аллокаторов памяти Rust и C, с разбором причин сбоев
Годное чтиво под горячий кофе ☕
@RustPortal
1 742
Сегодня узнал про атрибут
#[cold] — его используют для функций, которые вызываются редко. Это помогает компилятору оптимизировать производительность кэша инструкций, сосредотачивая внимание на «горячих» функциях.
Атрибут #[cold] также можно применять к вариантам enum'ов, чтобы улучшить размещение в памяти.
@RustPortal1 742
Repost from IT Portal
Rust исполнилось 10 лет 👌
Стабильный релиз 1.0 вышел 15 мая 2015 года. До этого шесть лет под крылом Mozilla, тестили на Servo — браузерном движке, который делали вместе с Samsung.
В 2020 Mozilla передала Servo в Linux Foundation и распустила команду. Rust выжил
В 2021 запустили Rust Foundation — Amazon, Google, Huawei, Microsoft и всё та же Mozilla в составе
Сейчас Rust уже в ядре Linux — на нём пилят драйвера
@IT_Portal
1 742
Этот совет вам понравится: когда-нибудь пробовали сравнивать два варианта перечисления (enum)?
Обычно для этого требуется каскад операторов
match.
Однако, в такой ситуации можно использовать mem::discriminant. Это особенно полезно, когда перечисление (enum) не реализует (не имеет) трейт Eq.
@RustPortal1 742
+2
Реализация механизма обратного давления (Backpressure) в Rust для асинхронных систем 🦀
В асинхронных системах механизм обратного давления обеспечивает, чтобы производители данных не перегружали потребителей. Асинхронная экосистема Rust предоставляет инструменты для эффективного управления этим процессом.
Что такое обратное давление?
— Обратное давление — это механизм замедления производства данных, когда потребитель не успевает обрабатывать их с той же скоростью. В Rust это критически важно для поддержания производительности и предотвращения перегрузки асинхронных задач.
1️⃣Использование ограниченных каналов
— Ограниченные каналы из библиотек tokio или async-std ограничивают количество элементов в очереди, применяя обратное давление, когда лимит достигается.
— Производитель останавливается, если канал переполнен, и остается в этом состоянии до тех пор, пока потребитель не начнет обрабатывать данные.
2️⃣ Обратное давление с потоками
— Обратное давление критично для потоков данных, чтобы контролировать соотношение между производимыми и потребляемыми данными.
— ReceiverStream интегрируется с ограниченными каналами, чтобы естественным образом обрабатывать обратное давление.
3️⃣Пользовательское обратное давление с Future
— Вы можете создать пользовательские механизмы обратного давления, управляя выполнением задач напрямую.
Основные выводы:
🔸Используйте ограниченные каналы для автоматического применения обратного давления.
🔸Сочетайте потоки с ограниченными очередями для реактивных систем.
🔸Пишите собственную логику для более точного контроля синхронизации задач.
@RustPortal
