Rust
8.07K subscribers
389 photos
39 videos
3 files
947 links
Rust programming language

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

@ai_machinelearning_big_data - машинное обучение

@programming_books_it - бесплатные it книги

@pythonl - 🐍

@ArtificialIntelligencedl - AI

@datascienceiot - ml 📚

#VRHSZ
Download Telegram
👣 Крутые фичи в Rust, которые связаны не только с производительностью.

https://ntietz.com/blog/great-things-about-rust-beyond-perf/

#программирование #rustlang

@rust_code
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥54😡2🥰1😁1
🚮 trash-rs: библиотека Rust для удаления и перемещения файлов в корзину.

📚 Документация: docs.rs/trash

GitHub: github.com/Byron/trash-rs


#rustlang #library #opensource #trash #recycle #restore #filesystem
👍9🤔62🥰2🔥1
Pixi v0.40.3 только что вышел! 🚀

📦 Кроссплатформенный, многоязычный менеджер пакетов и инструмент рабочего процесса — написан на Rust! 🦀

👉 Этот релиз включает в себя большие улучшения зависимостей Git 🐙

GitHub: https://github.com/prefix-dev/pixi/releases/tag/v0.40.3

#rustlang #package #manager #workflow

@rust_code
👍93🥰3
👣 garde — это библиотека для валидации данных в Rust 🦀, то есть проверки, что структура или переменные соответствуют определённым правилам (например, "email должен быть валидным", "возраст больше 18", "строка не пустая" и т.д.).

🧠 garde позволяет:

Легко описывать правила валидации прямо внутри структур (через атрибуты).

🔁 Работать с вложенными структурами (inner types).

🧊 Поддерживает newtypes — обёртки над типами.

🛠️ Писать свои кастомные валидаторы.

Проверка происходит во время исполнения, но декларативно выглядит как часть типа.

📦 Пример использования
rust


use garde::Validate;

#[derive(Validate)]
struct User {
#[garde(length(min = 3))]
username: String,

#[garde(email)]
email: String,
}


Тут username должен быть минимум из 3 символов, а email — валидный адрес.

GitHub: https://github.com/jprochazk/garde

#rustlang #type #validation #programming #library #opensource
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32👍184🥰1
🦀 Вышел Rust 1.89 — стабильный релиз с важными обновлениями


💡 Главное в 1.89:
- Символ _ в const-генериках для автоматического вывода значений.
- 🛡️ Новый lint mismatched_lifetime_syntaxes для выявления неоднозначных lifetime.
- ⚙️ target_feature на x86 теперь проверяет sha512, sm3, sm4, kl, widekl и avx512.
- 🧪 Doctest теперь можно запускать для любых целей через cargo test --doc --target.
- 🌐 Для wasm32-unknown-unknown — поддержка стандартного C ABI в extern "C".
- 📏 Разрешены типы i128/u128 в extern "C" (с ограничениями).
- 📦 В стабильных API: intrinsics для x86, NonZero<char>, File::lock*, NonNull::from_ref*, OsString::leak, PathBuf::leak, Result::flatten, TcpStreamExt::quickack*.
- 🏷 const для <[T; N]>::as_mut_slice, <[u8]>::eq_ignore_ascii_case, str::eq_ignore_ascii_case.
- 🖥️ x86_64-apple-darwin переведена на второй уровень поддержки.
- 🆕 Третий уровень поддержки для loongarch32-unknown-none(-softfloat).

📊 Экосистема:
- В Debian Sid 8% src-пакетов зависят от librust-* (в Debian 12 было 4.5%).
- Более 3 тыс. пакетов содержат код на Rust.
- Инструмент debcargo для преобразования crate → src-пакеты.
- Новый проект tmux-rs — клон tmux на Rust.
- Collabora — статья о GPU-драйверах на Rust.
- Демо-приложение на Rust, работающее на CPU и GPU (CUDA, SPIR-V, Metal, DirectX 12, WebGPU).

#RustLang #Rust #Programming #Release

https://blog.rust-lang.org/2025/08/07/Rust-1.89.0/

@rust_code
25🔥10👍6🤗3👏2🥰1
⚡️ work-tuimer - это удобный трекер рабочего времени прямо в терминале.

Мгновенный старт, без лишних настроек: запускаешь — и фиксируешь задачи.

Что умеет:
- моментальное редактирование записей
- undo/redo для любых действий
- автосохранения
- полноценный календарный просмотр

Написан на Rust и построен на ratatui - быстрый и приятный в использовании TUI-инструмент.

GitHub: https://github.com/Kamyil/work-tuimer
#rustlang #ratatui
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥75🥰2😡1
This media is not supported in your browser
VIEW IN TELEGRAM
🎬 gitlogue - кинематографический инструмент воспроизведения коммитов Git для терминала.

Наблюдайте за тем, как происходят коммиты с помощью анимации ввода текста, подсветки синтаксиса и обновляемого в режиме реального времени дерева файлов.

🤯 Следите за кодом вашего репо.

🦀 Написано на Rust и собрано с помощью

GitHub: https://github.com/unhappychoice/gitlogue

#rustlang #ratatui #tui #git #commits #replay #terminal #screensavert
😁23👍14❤‍🔥63🤣2🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
💡 rusty lights - терминальная версия игры Lights Out

Это минималистичная TUI игра, которая запускается прямо в терминале и при этом включает быстрый солвер, способный решать огромные доски с помощью линейной алгебры.

🦀 Проект написан на Rust и использует ratatui rs для рендера интерфейса.

GitHub: https://github.com/arom1a/rusty-lights

#rustlang #ratatui #tui #gamedev #terminal #game #puzzle
13🥰5🤗4👍1🔥1
Правильный выбор Линуса 😂

#rust #rustlang #programming
👍42😁2211🔥5🥱3🥰2🖕2💯1
🦀 Пишем блочные устройства в user space на Rust - теперь это реально

В Linux 6+ появился новый фреймворк ublk, который позволяет создавать виртуальные блочные устройства (block devices) прямо в user space, без написания драйвера в ядре.

То есть можно сделать свой “диск”:
- из файла
- из сети
- из кастомного storage
- с логикой кеширования/сжатия/шифрования
и всё это - обычным приложением, а не kernel-модулем.

Автор статьи показывает, как работает ublk на уровне ядра и интерфейсов, а затем демонстрирует использование на Rust - с PoC-проектом blkchnkr.

Почему это важно:
- меньше боли с kernel-разработкой
- проще отлаживать и тестировать
- Rust идеально подходит для таких системных задач: безопасность памяти + высокая производительность

Если ты интересуешься storage/OS-dev - это один из самых интересных новых API в Linux за последнее время.

https://jpospisil.com/posts/2026-01-13-creating-virtual-block-devices-with-ublk

#rust #rustlang #linux
❤‍🔥20👍149🥰1🤗1
👣 Rust совет: безопасные матрицы с Const Generics

Const generics позволяют передавать константы на этапе компиляции прямо в типы.

Это особенно полезно для работы с массивами и матрицами, где размеры должны быть строго фиксированы.

Пример - типобезопасная матрица:


struct Matrix<const ROWS: usize, const COLS: usize> {
data: [[f32; COLS]; ROWS],
}

let mat: Matrix<2, 2> = Matrix {
data: [[1.0, 2.0], [3.0, 4.0]],
};

let value = mat.data[1][0]; // 3.0


#rust #rustlang #junior #rusttip
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29🔥74🥰1🤗1
🦀 Как устроен async «под капотом» в Rust — на пальцах и без магии

В статье разобрано, как написать микро async-runtime с нуля на macOS, используя kqueue. Отличный материал, чтобы наконец понять, что происходит под async/await.

Что он реализует

Минимальный, но полноценный стек:

- event loop — сердце рантайма
- poller — ждёт события от ОС
- reactor — связывает I/O-события и задачи
- tasks — единицы работы (future’ы)
- wakers — механизм «разбудить задачу»
- executor — запускает и перепланирует задачи

Обычно мы используем готовые рантаймы вроде или, не задумываясь, как они работают.
Здесь же видно:

- как kqueue сигналит о готовности сокета
- как future переходит из Pending в Ready
- как waker возвращает задачу в очередь
- как executor крутит цикл выполнения

После такого разборa async в Rust перестаёт быть «чёрной коробкой».

Статья: https://michaelhelvey.dev/posts/rust_async_runtime

michaelhelvey.dev/posts/rust_async_runtime
#rust #rustlang
12👍7🥰5🤗2
Всякий раз, когда упоминается Rust в Linux! 🦀

#rust #rustlang #programming
🔥15😁153🤣3🥰1😱1💯1
🦀 Google наконец выпустил официальный CLI на Rust для своих сервисов.

Теперь через один инструмент можно работать с Gmail, Drive, Sheets, Calendar, Admin, Keep, Meet и еще десятком сервисов Google.

#rust #rustlang #programming

https://github.com/googleworkspace/cli
👍35🔥1210💊41🌭1
🦀 Вышел Rust 1.94.0

В новом релизе появилось небольшое, но очень полезное изменение для разработчиков CLI-утилит.

Теперь переменная CARGO_BIN_EXE_<name> доступна не только во время сборки, но и во время выполнения программы.

Это позволяет напрямую получать путь к скомпилированному бинарнику и использовать его в тестах. Раньше для этого приходилось писать обходные решения или вручную искать путь к файлу.

Теперь Cargo сам предоставляет путь к бинарному файлу, что сильно упрощает интеграционное тестирование CLI-приложений.

Полный список изменений доступен в changelog релиза Rust 1.94.0.

https://github.com/rust-lang/rust/releases/tag/1.94.0

#rustlang #rust #cargo #release #testing #opensource
👍31🔥17🎉64😁21🥰1🤗1
🦀 Вышел rustup 1.29.0

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

Что нового:

- rustup update стал быстрее благодаря параллельной загрузке и распаковке
- появилась официальная поддержка Solaris - sparcv9 и x86_64
- rustup теперь автоматически настраивает PATH для tcsh и xonsh
- если у вас уже есть свой rust-analyzer в PATH, rustup будет использовать именно его - удобно для Neovim и Helix
- к команде присоединился новый участник - @FranciscoTGouveia

Особенно приятно видеть изменения не только для массовых сценариев, но и для более нишевых окружений и удобных dev-воркфлоу.

Небольшой релиз, но очень практичный.

#rust #rustlang #programming

https://blog.rust-lang.org/2026/03/12/Rustup-1.29.0/
👍28🔥106🤗21🥰1
Rust-совет недели 🦀

Можно встроить статический текст прямо в бинарник с помощью include_str!.

Этот макрос читает файл во время компиляции и встраивает его содержимое прямо в программу. Никакого чтения файлов во время выполнения.

Это удобно для:
- шаблонов конфигурации
- встроенных скриптов
- статических ресурсов
- тестовых данных

Пример:


fn main() {
const TEXT: &str = include_str!("static-data.txt");
let program = include_str!("main.rs");
}


Во время компиляции Rust читает файл и помещает его содержимое прямо в исполняемый файл.

Просто, быстро и без runtime IO.

#rust #junior #rustlang
26🔥19👍10🤔2🥰1🤗1
🦀 Как может выглядеть будущее Rust

В новой статье “A Grand Vision for Rust” разработчик Yoshua Wuyts рассуждает о том, в каком направлении может развиваться язык в ближайшие годы.

Главная идея - сделать Rust ещё более надежным системным языком, который позволяет писать быстрые программы и при этом максимально снижает вероятность ошибок.

Один из возможных шагов - развитие системы эффектов. Смысл в том, чтобы функции могли явно указывать, какие действия они выполняют. Например, делает ли функция ввод-вывод, может ли вызвать panic, использует ли выделение памяти или запускает параллельные задачи.

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

Также обсуждается развитие модели конкурентности и более удобная работа с асинхронным кодом. Идея в том, чтобы управление задачами стало более структурированным и предсказуемым.

Отдельное внимание уделяется упрощению сложных частей языка и улучшению инструментов для системного программирования.

В целом автор говорит о том, что Rust уже считается одним из самых безопасных языков, но в будущем он может стать платформой, где корректность программ будет ещё сильнее контролироваться самим компилятором.🦀 Как может выглядеть будущее Rust

В новой статье “A Grand Vision for Rust” разработчик Yoshua Wuyts рассуждает о том, в каком направлении может развиваться язык в ближайшие годы.

Главная идея - сделать Rust ещё более надежным системным языком, который позволяет писать быстрые программы и при этом максимально снижает вероятность ошибок.

Один из возможных шагов - развитие системы эффектов. Смысл в том, чтобы функции могли явно указывать, какие действия они выполняют. Например, делает ли функция ввод-вывод, может ли вызвать panic, использует ли выделение памяти или запускает параллельные задачи.

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

Также обсуждается развитие модели конкурентности и более удобная работа с асинхронным кодом. Идея в том, чтобы управление задачами стало более структурированным и предсказуемым.

Отдельное внимание уделяется упрощению сложных частей языка и улучшению инструментов для системного программирования.

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

blog.yoshuawuyts.com/a-grand-vision-for-rust/
#rust #rustlang
28🔥14🥰4💯2🤔1
🦀 Rust: Traits, Generics и Coherence

Система traits в Rust очень мощная, но правила coherence и orphan rules иногда делают разработку довольно болезненной.

Часто кажется, что язык просто не даёт реализовать trait там, где это логично.

В статье разбирают, как перестать бороться с этими ограничениями и вместо этого использовать более гибкий подход — context-generic реализации traits.

Это позволяет:

- писать более модульный код
- избегать конфликтов impl
- лучше работать с generics
- обходить ограничения orphan rules без хака

Хороший разбор для тех, кто уже пишет на Rust и хочет глубже понять архитектуру trait-системы.

https://contextgeneric.dev/blog/rustlab-2025-coherence/

#rust #rustlang
🔥13👍73🥰1🤗1
🦀 Rust совет

На прошлой неделе мы показывали, как встраивать статические данные в код с помощью include_str!.

Сегодня - маленький, но очень полезный трюк.

⚙️ Запуск Cargo с конкретной версией toolchain

Иногда нужно проверить, будет ли ваш проект работать на следующей версии Rust (которая скоро станет stable).

Для этого не нужно менять глобальную версию Rust.

Достаточно просто указать toolchain прямо в команде:


cargo +beta test


Можно использовать и другие версии:


cargo +nightly build
cargo +stable check


💡 Это удобно для:
• тестирования совместимости с будущими релизами Rust
• проверки nightly-фич
• CI-пайплайнов
• отлова будущих breaking changes

Маленький трюк, но экономит часы дебага.

#rust #rustlang
🤗1510🥰3🍓1👀1