https://ntietz.com/blog/great-things-about-rust-beyond-perf/
#программирование #rustlang
@rust_code
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥5❤4😡2🥰1😁1
🚮 trash-rs: библиотека Rust для удаления и перемещения файлов в корзину.
📚 Документация: docs.rs/trash
⭐ GitHub: github.com/Byron/trash-rs
#rustlang #library #opensource #trash #recycle #restore #filesystem
📚 Документация: docs.rs/trash
⭐ GitHub: github.com/Byron/trash-rs
#rustlang #library #opensource #trash #recycle #restore #filesystem
👍9🤔6❤2🥰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
📦 Кроссплатформенный, многоязычный менеджер пакетов и инструмент рабочего процесса — написан на Rust! 🦀
👉 Этот релиз включает в себя большие улучшения зависимостей Git 🐙
⭐ GitHub: https://github.com/prefix-dev/pixi/releases/tag/v0.40.3
#rustlang #package #manager #workflow
@rust_code
👍9❤3🥰3
🧠 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👍18❤4🥰1
🦀 Вышел Rust 1.89 — стабильный релиз с важными обновлениями
💡 Главное в 1.89:
- ➖ Символ
- 🛡️ Новый lint
- ⚙️ target_feature на x86 теперь проверяет sha512, sm3, sm4, kl, widekl и avx512.
- 🧪 Doctest теперь можно запускать для любых целей через
- 🌐 Для
- 📏 Разрешены типы i128/u128 в extern "C" (с ограничениями).
- 📦 В стабильных API: intrinsics для x86, NonZero<char>, File::lock*, NonNull::from_ref*, OsString::leak, PathBuf::leak, Result::flatten, TcpStreamExt::quickack*.
- 🏷 const для
- 🖥️ x86_64-apple-darwin переведена на второй уровень поддержки.
- 🆕 Третий уровень поддержки для loongarch32-unknown-none(-softfloat).
📊 Экосистема:
- В Debian Sid 8% src-пакетов зависят от
- Более 3 тыс. пакетов содержат код на Rust.
- Инструмент
- Новый проект 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
💡 Главное в 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
Мгновенный старт, без лишних настроек: запускаешь — и фиксируешь задачи.
Что умеет:
- моментальное редактирование записей
- 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🔥7❤5🥰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
⚡ Наблюдайте за тем, как происходят коммиты с помощью анимации ввода текста, подсветки синтаксиса и обновляемого в режиме реального времени дерева файлов.
🤯 Следите за кодом вашего репо.
🦀 Написано на Rust и собрано с помощью
⭐ GitHub: https://github.com/unhappychoice/gitlogue
#rustlang #ratatui #tui #git #commits #replay #terminal #screensavert
😁23👍14❤🔥6❤3🤣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
Это минималистичная TUI игра, которая запускается прямо в терминале и при этом включает быстрый солвер, способный решать огромные доски с помощью линейной алгебры.
🦀 Проект написан на Rust и использует ratatui rs для рендера интерфейса.
⭐ GitHub: https://github.com/arom1a/rusty-lights
#rustlang #ratatui #tui #gamedev #terminal #game #puzzle
❤13🥰5🤗4👍1🔥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
В 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👍14❤9🥰1🤗1
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🔥7❤4🥰1🤗1
🦀 Как устроен async «под капотом» в Rust — на пальцах и без магии
В статье разобрано, как написать микро async-runtime с нуля на macOS, используя
Что он реализует
Минимальный, но полноценный стек:
- event loop — сердце рантайма
- poller — ждёт события от ОС
- reactor — связывает I/O-события и задачи
- tasks — единицы работы (future’ы)
- wakers — механизм «разбудить задачу»
- executor — запускает и перепланирует задачи
Обычно мы используем готовые рантаймы вроде или, не задумываясь, как они работают.
Здесь же видно:
- как
- как future переходит из Pending в Ready
- как waker возвращает задачу в очередь
- как executor крутит цикл выполнения
После такого разборa
Статья: https://michaelhelvey.dev/posts/rust_async_runtime
michaelhelvey.dev/posts/rust_async_runtime
#rust #rustlang
В статье разобрано, как написать микро 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
🦀 Google наконец выпустил официальный CLI на Rust для своих сервисов.
Теперь через один инструмент можно работать с Gmail, Drive, Sheets, Calendar, Admin, Keep, Meet и еще десятком сервисов Google.
#rust #rustlang #programming
https://github.com/googleworkspace/cli
Теперь через один инструмент можно работать с Gmail, Drive, Sheets, Calendar, Admin, Keep, Meet и еще десятком сервисов Google.
#rust #rustlang #programming
https://github.com/googleworkspace/cli
👍35🔥12❤10💊4☃1🌭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
В новом релизе появилось небольшое, но очень полезное изменение для разработчиков 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🎉6❤4😁2⚡1🥰1🤗1
🦀 Вышел rustup 1.29.0
Обновление получилось действительно полезным - без громких обещаний, зато с улучшениями, которые заметны в реальной работе.
Что нового:
-
- появилась официальная поддержка Solaris -
- rustup теперь автоматически настраивает
- если у вас уже есть свой
- к команде присоединился новый участник -
Особенно приятно видеть изменения не только для массовых сценариев, но и для более нишевых окружений и удобных dev-воркфлоу.
Небольшой релиз, но очень практичный.
#rust #rustlang #programming
https://blog.rust-lang.org/2026/03/12/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🔥10❤6🤗2⚡1🥰1
Rust-совет недели 🦀
Можно встроить статический текст прямо в бинарник с помощью
Этот макрос читает файл во время компиляции и встраивает его содержимое прямо в программу. Никакого чтения файлов во время выполнения.
Это удобно для:
- шаблонов конфигурации
- встроенных скриптов
- статических ресурсов
- тестовых данных
Пример:
Во время компиляции Rust читает файл и помещает его содержимое прямо в исполняемый файл.
Просто, быстро и без runtime IO.
#rust #junior #rustlang
Можно встроить статический текст прямо в бинарник с помощью
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
В новой статье “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
Система 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👍7❤3🥰1🤗1
🦀 Rust совет
На прошлой неделе мы показывали, как встраивать статические данные в код с помощью
Сегодня - маленький, но очень полезный трюк.
⚙️ Запуск Cargo с конкретной версией toolchain
Иногда нужно проверить, будет ли ваш проект работать на следующей версии Rust (которая скоро станет stable).
Для этого не нужно менять глобальную версию Rust.
Достаточно просто указать toolchain прямо в команде:
Можно использовать и другие версии:
💡 Это удобно для:
• тестирования совместимости с будущими релизами Rust
• проверки nightly-фич
• CI-пайплайнов
• отлова будущих breaking changes
Маленький трюк, но экономит часы дебага.
#rust #rustlang
На прошлой неделе мы показывали, как встраивать статические данные в код с помощью
include_str!.Сегодня - маленький, но очень полезный трюк.
⚙️ Запуск Cargo с конкретной версией toolchain
Иногда нужно проверить, будет ли ваш проект работать на следующей версии Rust (которая скоро станет stable).
Для этого не нужно менять глобальную версию Rust.
Достаточно просто указать toolchain прямо в команде:
cargo +beta test
Можно использовать и другие версии:
cargo +nightly build
cargo +stable check
💡 Это удобно для:
• тестирования совместимости с будущими релизами Rust
• проверки nightly-фич
• CI-пайплайнов
• отлова будущих breaking changes
Маленький трюк, но экономит часы дебага.
#rust #rustlang
🤗16❤10🥰3🍓1👀1