Rust
2.03K subscribers
122 photos
86 videos
2 files
164 links
Полезный контент по программированию на Rust
Download Telegram
💻 100 упражнений для изучения Rust

Репозиторий 100-exercises-to-learn-rust предлагает подборку из 100 задач для практики Rust. Упражнения покрывают широкий спектр тем: от базового синтаксиса и работы с переменными до более сложных тем вроде многопоточности и асинхронного программирования.

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

https://github.com/mainmatter/100-exercises-to-learn-rust

👉 @rust_lib
🔥16👍54🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
Rustubble

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

Компонент TextInput — это универсальное и настраиваемое текстовое поле ввода, предназначенное для терминальных приложений на языке Rust. Он поддерживает Unicode, динамическую обработку ввода и предлагает множество опций настройки для улучшения взаимодействия с пользователем.

Особенности:

* Поддержка Unicode: Без проблем обрабатывает ввод символов Unicode.
* Динамическая обработка ввода: Поддерживает ввод в реальном времени, включая вставку и удаление текста.
* Гибкая настройка: Возможность задавать отступы, плейсхолдер, начальный текст и вспомогательный текст.
* Управление курсором: Контролирует положение курсора и гарантирует его корректное размещение в зависимости от действий пользователя.

https://github.com/warpy-ai/rustubble

👉 @rust_lib
👍113🥰1
Выпуск Rust 1.87

В день празднования десятилетия с момента выпуска языка программирования Rust 1.0 (проект Rust был основан в 2006 году, выпуск 0.1 был сформирован в 2012 году, а первая стабильная версия предложена в 2015 году) опубликован релиз Rust 1.87. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).

Методы работы с памятью в Rust избавляют разработчика от ошибок при манипулировании указателями и защищают от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo. Для размещения библиотек поддерживается репозиторий crates.io.

Безопасная работа с памятью обеспечивается в Rust во время компиляции через проверку ссылок, отслеживание владения объектами, учёт времени жизни объектов (области видимости) и оценку корректности доступа к памяти во время выполнения кода. Rust также предоставляет средства для защиты от целочисленных переполнений, требует обязательной инициализации значений переменных перед использованием, лучше обрабатывает ошибки в стандартной библиотеке, применяет концепцию неизменяемости (immutable) ссылок и переменных по умолчанию, предлагает сильную статическую типизацию для минимизации логических ошибок.

https://www.opennet.ru/opennews/art.shtml?num=63242

👉 @rust_lib
👍133🥰2
Komorebi

Менеджер окон с тайлингом для Windows 🍉

Обзор
komorebi — это менеджер окон с тайлингом, работающий как расширение для Desktop Window Manager в Windows 10 и выше.

komorebi позволяет управлять оконными приложениями, виртуальными рабочими областями и мониторами через CLI. Его можно использовать вместе со сторонним софтом, таким как whkd и AutoHotKey, для настройки пользовательских сочетаний клавиш.

Цель komorebi — по умолчанию вносить как можно меньше изменений в операционную систему и окружение рабочего стола. Пользователи могут вносить нужные им правки в собственных конфигурационных файлах komorebi, но эти изменения останутся опциональными и отключёнными по умолчанию в обозримом будущем.

https://github.com/LGUG2Z/komorebi

👉 @rust_lib
👍72🔥1🥰1
🤖 Тест по Rust проверь свои знания, готов ли ты к обучению на курсе.

Ответишь — пройдешь на курс "Rust Developer. Professional" от OTUS по специальной цене + получишь доступ к записям открытых уроков курса

За 5 месяцев обучения ты разберёшь ключевые особенности Rust и сможешь не только разрабатывать сложные программные продукты, но и в целом лучше проектировать ПО.

➡️ ПРОЙТИ ТЕСТ

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👍1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Yazi — ⚡️ Молниеносно быстрый файловый менеджер для терминала

Это файловый менеджер для терминала, написанный на Rust, основанный на неблокирующем асинхронном вводе/выводе. Он ориентирован на предоставление эффективного, удобного и настраиваемого опыта управления файлами.

• Встроенная поддержка нескольких протоколов изображений
• Полная асинхронная поддержка: все операции ввода-вывода являются асинхронными, задачи ЦП распределяются по нескольким потокам, что позволяет максимально эффективно использовать доступные ресурсы.
• Встроенная подсветка кода
• Интеграция с fd, rg, fzf, zoxy
• Vim-подобное управление
• Поддержка нескольких вкладок, предварительный просмотр с возможностью прокрутки (для видео, PDF-файлов, архивов, каталогов, кода и т. д.)
• Система тем, пользовательские макеты, корзина для мусора
и многое другое...

Совместим с GNU/Linux, Windows, macOS

https://github.com/sxyazi/yazi

👉 @rust_lib
👍313🔥1🥰1
Helix gpui

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

Темы
gui, rust-lang, helix-editor

https://github.com/polachok/helix-gpui

👉 @rust_lib
👍82🤡2🥰1💊1
Один на один с Rust

Всем привет! Я Влад Лунин, занимаюсь анализом сложных угроз в экспертном центре безопасности Positive Technologies. В последнее время часто приходится сталкиваться с вредоносным ПО (ВПО), написанном на Rust, поэтому хочу поделиться своим опытом реверса исполняемых файлов, написанном на этом языке. ВПО бывает как очень простое, так и очень сложное в своей реализации, и чаще всего эта сложность обусловлена особенностями Rust. Расскажу, какие подходы применяю для успешного реверса, а также про сложности, с которыми сталкивался, и как их преодолевал.

https://habr.com/ru/companies/pt/articles/915192/

👉 @rust_lib
👍16
🔧 Библиотека Rustworkx - это высокопроизводительное средство для работы с графами на Python, написанное на Rust.

Она была разработана как альтернатива NetworkX, но с упором на производительность: реализация на Rust даёт значительный прирост скорости при сохранении удобного Python-интерфейса через PyO3. Поддерживаются как направленные, так и ненаправленные графы, деревья, DAG-и, и всё это — с кастомными атрибутами узлов и рёбер.

rustworkx предоставляет большое количество алгоритмов: обходы в глубину/ширину, кратчайшие пути (Dijkstra, A*), топологическую сортировку, поиск мостов, минимальные остовные деревья, изоморфизм графов, и многое другое.

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

Установка:


pip install rustworkx


https://github.com/Qiskit/rustworkx

👉 @rust_lib
👍93👎1🥰1🤔1
toydb — это распределённая SQL-база данных, реализованная на Rust с нуля, включая журнал предзаписи (write-ahead log), хранилище на основе B-деревьев, транзакции с сериализуемой изоляцией, согласование с помощью Raft и SQL-парсер/исполнитель.

Особенности:

* Полная реализация Raft с поддержкой снапшотов
* SQL-парсер и исполнитель, поддерживающий выборку, фильтрацию, агрегацию, соединения, подзапросы и т.д.
* Хранилище ключ-значение на основе B-деревьев с журналом предзаписи
* Механизм MVCC с сериализуемой изоляцией и детекцией конфликтов
* Планировщик транзакций с дедлок-детекцией
* Управление схемой SQL (таблицы, индексы, и т.д.)

Цель проекта — изучение реализации распределённых баз данных с нуля. Он не предназначен для использования в продакшене.

https://github.com/erikgrinaker/toydb

👉 @rust_lib
👍174🔥1🥰1
«Zero To Production In Rust»

Это субъективное введение в разработку backend-приложений на Rust.

Этот репозиторий служит вспомогательным материалом к книге: он содержит несколько снимков (состояний) кодовой базы проекта рассылки по электронной почте, отражающих её развитие по мере продвижения по книге.

https://github.com/LukeMathWalker/zero-to-production

👉 @rust_lib
👍144🥰1
🦀 Хотите стать Middle Rust-разработчиком?

Присоединяйтесь к открытому уроку «Техническое собеседование на Middle Rust разработчика» 24 июля в 20:00 МСК. В режиме онлайн разберем:

— Типичные вопросы, которые вам зададут на собеседовании.

— Задачи, которые дают кандидатам на уровне Middle.

— Частые ошибки на собеседованиях и способы их избежать.

❗️Этот урок — отличная подготовка к карьерному росту в разработке.

👉 Записаться на вебинар курса «Rust Developer. Professional»https://vk.cc/cNKKfj

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
4🫡1
Lapce — это современный и быстрый текстовый редактор, написанный на Rust, с пользовательским интерфейсом на базе Flutter. Он задуман как альтернатива таким редакторам, как VS Code, с акцентом на производительность и расширяемость. Lapce использует архитектуру плагинов, поддерживает LSP (Language Server Protocol), имеет поддержку Vim-модального редактирования и обеспечивает отзывчивый интерфейс даже при работе с большими проектами.

Основные особенности:

* Полностью написан на Rust
* Интерфейс на Flutter, который компилируется в нативный код
* Поддержка LSP, автодополнения, подсветки синтаксиса
* Расширяемость через плагины
* Встроенная поддержка Vim-режима
* Высокая производительность и низкое потребление ресурсов

Проект активно развивается и открыт для контрибьюции. Lapce отлично подойдёт тем, кто ищет быстрый и настраиваемый редактор с современными технологиями под капотом.

https://github.com/lapce/lapce

👉 @rust_lib
👍154🔥1🥰1
«Почему компилятор Rust такой медленный?»

Я потратил месяц на создание веб-сайта в Docker и теперь готов поделиться ужасными историями.

У меня есть проблема.

Мой веб-сайт (на котором была опубликована эта статья) в основном обслуживается одним двоичным файлом Rust. Он стал слишком длинным. Каждый раз, когда мне нужно внести изменение, я должен:

Собрать новую статически компонуемую библиотеку (с --target=x86_64-unknown-linux-musl)

1. Скопировать её на сервер
2. Перезапустить веб-сайт

Ситуация, мягко говоря, неидеальная.

Поэтому мне бы хотелось перейти к развёртыванию веб-сайта при помощи контейнеров (будь то Docker, Kubernetes или что-то иное), в духе подавляющего большинства ПО, разворачиваемого в последний десяток лет.

Единственная проблема заключается в том, что реализовать быстрые сборки Rust с Docker не так уж просто.

https://habr.com/ru/articles/922534/

original https://sharnoff.io/blog/why-rust-compiler-slow

👉 @rust_lib
👍63🥰1
Книга Rust Embedded Drivers (RED)

- Научитесь писать простые драйверы для аппаратных устройств, работающие в экосистеме встраиваемого Rust.
- Драйвер для датчика DHT для считывания влажности и температуры.
- Освойте использование embedded-hal-mock для тестирования.

https://red.implrust.com/

👉 @rust_lib
👍205🔥1🥰1💊1
Youki — контейнерный рантайм на Rust

Это реализация OCI-совместимого контейнерного рантайма, написанная на Rust. Проект нацелен на то, чтобы быть быстрым, безопасным и простым для сопровождения.

Основные особенности:

- Полная совместимость с OCI Runtime Specification
- Использование Rust для повышения безопасности за счёт управления памятью без использования unsafe (по возможности).
- Модульная архитектура, что упрощает расширение и поддержку.
- Возможность заменить runc в таких инструментах, как Docker или Kubernetes.

https://github.com/youki-dev/youki

👉 @rust_lib
👍111🥰1
🤖 Тест по Rust проверь свои знания, готов ли ты к обучению на курсе.

Ответишь — пройдешь на курс "Rust Developer. Professional" от OTUS по специальной цене + получишь доступ к записям открытых уроков курса

За 5 месяцев обучения ты разберёшь ключевые особенности Rust и сможешь не только разрабатывать сложные программные продукты, но и в целом лучше проектировать ПО.

➡️ ПРОЙТИ ТЕСТ И ОЗНАКОМИТСЯ С ПРОГРАММОЙ: https://vk.cc/cOkYUj

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
1
Компилируемый асинхронный ORM с динамическим SQL

Rbatis — это высокопроизводительный ORM-фреймворк для Rust, основанный на генерации кода во время компиляции. Он отлично сочетает в себе эффективность разработки, производительность и стабильность, выполняя роль как ORM, так и компилятора динамического SQL.

https://github.com/rbatis/rbatis

👉 @rust_lib
👍5🔥32🥰1🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
LSP-AI - это open source language server, обеспечивающий работу AI-функционала в ваших любимых редакторах кода. Он предлагает такие возможности, как чат с LLM прямо в редакторе и автодополнение кода. Поскольку это именно язык-сервер, он работает с любым редактором, поддерживающим LSP.

Цель LSP-AI — помогать и усиливать возможности программистов, интегрируясь с инструментами, которые они уже знают и любят, а не заменять их.

Небольшой список редакторов, с которыми он работает:

- VS Code
- NeoVim
- Emacs
- Helix
- Sublime

И ещё со множеством других редакторов.

https://github.com/SilasMarvin/lsp-ai

👉 @rust_lib
👍5🗿21🔥1🥰1
Хотите научиться разрабатывать многопользовательские чаты на Rust?

👉 Присоединяйтесь к открытому уроку «Rust в деле: пишем многопользовательский чат с сервером, клиентом и CLI» 14 августа в 20:00 МСК.

На вебинаре мы:
◽️Освоим сетевой протокол поверх TCP для связи клиента и сервера.
◽️Разработаем сервер с бизнес-логикой и клиентскую часть приложения.
◽️Реализуем интерфейс командной строки (CLI) для управления чатом.

❗️ Этот урок — отличная подготовка перед стартом курса «Rust Developer. Professional» от OTUS. Все участники вебинара получат скидку на обучение!

Записаться на вебинар → https://vk.cc/cOwJbH

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
2👍2🥰1