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👍15❤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