Helix gpui
Это простая графическая оболочка для редактора Helix. Большинство модальных редакторов работают в терминале; я хочу изменить это и реализовать качественный модальный GUI-редактор.
Темы
gui, rust-lang, helix-editor
https://github.com/polachok/helix-gpui
👉 @rust_lib
Это простая графическая оболочка для редактора Helix. Большинство модальных редакторов работают в терминале; я хочу изменить это и реализовать качественный модальный GUI-редактор.
Темы
gui, rust-lang, helix-editor
https://github.com/polachok/helix-gpui
👉 @rust_lib
👍8❤2🤡2💊2🥰1
Один на один с Rust
Всем привет! Я Влад Лунин, занимаюсь анализом сложных угроз в экспертном центре безопасности Positive Technologies. В последнее время часто приходится сталкиваться с вредоносным ПО (ВПО), написанном на Rust, поэтому хочу поделиться своим опытом реверса исполняемых файлов, написанном на этом языке. ВПО бывает как очень простое, так и очень сложное в своей реализации, и чаще всего эта сложность обусловлена особенностями Rust. Расскажу, какие подходы применяю для успешного реверса, а также про сложности, с которыми сталкивался, и как их преодолевал.
https://habr.com/ru/companies/pt/articles/915192/
👉 @rust_lib
Всем привет! Я Влад Лунин, занимаюсь анализом сложных угроз в экспертном центре безопасности Positive Technologies. В последнее время часто приходится сталкиваться с вредоносным ПО (ВПО), написанном на Rust, поэтому хочу поделиться своим опытом реверса исполняемых файлов, написанном на этом языке. ВПО бывает как очень простое, так и очень сложное в своей реализации, и чаще всего эта сложность обусловлена особенностями Rust. Расскажу, какие подходы применяю для успешного реверса, а также про сложности, с которыми сталкивался, и как их преодолевал.
https://habr.com/ru/companies/pt/articles/915192/
👉 @rust_lib
👍16
🔧 Библиотека
Она была разработана как альтернатива NetworkX, но с упором на производительность: реализация на Rust даёт значительный прирост скорости при сохранении удобного Python-интерфейса через PyO3. Поддерживаются как направленные, так и ненаправленные графы, деревья, DAG-и, и всё это — с кастомными атрибутами узлов и рёбер.
Особенно полезна для задач, где критична производительность графовых операций: квантовые вычисления, биоинформатика, планировщики, оптимизация.
Установка:
https://github.com/Qiskit/rustworkx
👉 @rust_lib
Rustworkx - это высокопроизводительное средство для работы с графами на Python, написанное на Rust.Она была разработана как альтернатива NetworkX, но с упором на производительность: реализация на Rust даёт значительный прирост скорости при сохранении удобного Python-интерфейса через PyO3. Поддерживаются как направленные, так и ненаправленные графы, деревья, DAG-и, и всё это — с кастомными атрибутами узлов и рёбер.
rustworkx предоставляет большое количество алгоритмов: обходы в глубину/ширину, кратчайшие пути (Dijkstra, A*), топологическую сортировку, поиск мостов, минимальные остовные деревья, изоморфизм графов, и многое другое.Особенно полезна для задач, где критична производительность графовых операций: квантовые вычисления, биоинформатика, планировщики, оптимизация.
Установка:
pip install rustworkx
https://github.com/Qiskit/rustworkx
👉 @rust_lib
👍9❤3👎1🥰1🤔1
toydb — это распределённая SQL-база данных, реализованная на Rust с нуля, включая журнал предзаписи (write-ahead log), хранилище на основе B-деревьев, транзакции с сериализуемой изоляцией, согласование с помощью Raft и SQL-парсер/исполнитель.
Особенности:
* Полная реализация Raft с поддержкой снапшотов
* SQL-парсер и исполнитель, поддерживающий выборку, фильтрацию, агрегацию, соединения, подзапросы и т.д.
* Хранилище ключ-значение на основе B-деревьев с журналом предзаписи
* Механизм MVCC с сериализуемой изоляцией и детекцией конфликтов
* Планировщик транзакций с дедлок-детекцией
* Управление схемой SQL (таблицы, индексы, и т.д.)
Цель проекта — изучение реализации распределённых баз данных с нуля. Он не предназначен для использования в продакшене.
https://github.com/erikgrinaker/toydb
👉 @rust_lib
Особенности:
* Полная реализация Raft с поддержкой снапшотов
* SQL-парсер и исполнитель, поддерживающий выборку, фильтрацию, агрегацию, соединения, подзапросы и т.д.
* Хранилище ключ-значение на основе B-деревьев с журналом предзаписи
* Механизм MVCC с сериализуемой изоляцией и детекцией конфликтов
* Планировщик транзакций с дедлок-детекцией
* Управление схемой SQL (таблицы, индексы, и т.д.)
Цель проекта — изучение реализации распределённых баз данных с нуля. Он не предназначен для использования в продакшене.
https://github.com/erikgrinaker/toydb
👉 @rust_lib
👍18❤4🔥1🥰1
«Zero To Production In Rust»
Это субъективное введение в разработку backend-приложений на Rust.
Этот репозиторий служит вспомогательным материалом к книге: он содержит несколько снимков (состояний) кодовой базы проекта рассылки по электронной почте, отражающих её развитие по мере продвижения по книге.
https://github.com/LukeMathWalker/zero-to-production
👉 @rust_lib
Это субъективное введение в разработку backend-приложений на Rust.
Этот репозиторий служит вспомогательным материалом к книге: он содержит несколько снимков (состояний) кодовой базы проекта рассылки по электронной почте, отражающих её развитие по мере продвижения по книге.
https://github.com/LukeMathWalker/zero-to-production
👉 @rust_lib
👍14❤5🥰1
Lapce — это современный и быстрый текстовый редактор, написанный на Rust, с пользовательским интерфейсом на базе Flutter. Он задуман как альтернатива таким редакторам, как VS Code, с акцентом на производительность и расширяемость. Lapce использует архитектуру плагинов, поддерживает LSP (Language Server Protocol), имеет поддержку Vim-модального редактирования и обеспечивает отзывчивый интерфейс даже при работе с большими проектами.
Основные особенности:
* Полностью написан на Rust
* Интерфейс на Flutter, который компилируется в нативный код
* Поддержка LSP, автодополнения, подсветки синтаксиса
* Расширяемость через плагины
* Встроенная поддержка Vim-режима
* Высокая производительность и низкое потребление ресурсов
Проект активно развивается и открыт для контрибьюции. Lapce отлично подойдёт тем, кто ищет быстрый и настраиваемый редактор с современными технологиями под капотом.
https://github.com/lapce/lapce
👉 @rust_lib
Основные особенности:
* Полностью написан на Rust
* Интерфейс на Flutter, который компилируется в нативный код
* Поддержка LSP, автодополнения, подсветки синтаксиса
* Расширяемость через плагины
* Встроенная поддержка Vim-режима
* Высокая производительность и низкое потребление ресурсов
Проект активно развивается и открыт для контрибьюции. Lapce отлично подойдёт тем, кто ищет быстрый и настраиваемый редактор с современными технологиями под капотом.
https://github.com/lapce/lapce
👉 @rust_lib
👍16❤4🔥1🥰1
«Почему компилятор Rust такой медленный?»
Я потратил месяц на создание веб-сайта в Docker и теперь готов поделиться ужасными историями.
У меня есть проблема.
Мой веб-сайт (на котором была опубликована эта статья) в основном обслуживается одним двоичным файлом Rust. Он стал слишком длинным. Каждый раз, когда мне нужно внести изменение, я должен:
Собрать новую статически компонуемую библиотеку (
1. Скопировать её на сервер
2. Перезапустить веб-сайт
Ситуация, мягко говоря, неидеальная.
Поэтому мне бы хотелось перейти к развёртыванию веб-сайта при помощи контейнеров (будь то Docker, Kubernetes или что-то иное), в духе подавляющего большинства ПО, разворачиваемого в последний десяток лет.
Единственная проблема заключается в том, что реализовать быстрые сборки Rust с Docker не так уж просто.
https://habr.com/ru/articles/922534/
original https://sharnoff.io/blog/why-rust-compiler-slow
👉 @rust_lib
Я потратил месяц на создание веб-сайта в 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
👍6❤3🥰1
✨ Книга Rust Embedded Drivers (RED)
- Научитесь писать простые драйверы для аппаратных устройств, работающие в экосистеме встраиваемого Rust.
- Драйвер для датчика DHT для считывания влажности и температуры.
- Освойте использование
https://red.implrust.com/
👉 @rust_lib
- Научитесь писать простые драйверы для аппаратных устройств, работающие в экосистеме встраиваемого Rust.
- Драйвер для датчика DHT для считывания влажности и температуры.
- Освойте использование
embedded-hal-mock для тестирования.https://red.implrust.com/
👉 @rust_lib
👍21❤5🔥2🥰1💊1
Youki — контейнерный рантайм на Rust
Это реализация OCI-совместимого контейнерного рантайма, написанная на Rust. Проект нацелен на то, чтобы быть быстрым, безопасным и простым для сопровождения.
Основные особенности:
- Полная совместимость с OCI Runtime Specification
- Использование Rust для повышения безопасности за счёт управления памятью без использования
- Модульная архитектура, что упрощает расширение и поддержку.
- Возможность заменить
https://github.com/youki-dev/youki
👉 @rust_lib
Это реализация OCI-совместимого контейнерного рантайма, написанная на Rust. Проект нацелен на то, чтобы быть быстрым, безопасным и простым для сопровождения.
Основные особенности:
- Полная совместимость с OCI Runtime Specification
- Использование Rust для повышения безопасности за счёт управления памятью без использования
unsafe (по возможности).- Модульная архитектура, что упрощает расширение и поддержку.
- Возможность заменить
runc в таких инструментах, как Docker или Kubernetes.https://github.com/youki-dev/youki
👉 @rust_lib
👍13❤1🥰1
Компилируемый асинхронный ORM с динамическим SQL
Rbatis — это высокопроизводительный ORM-фреймворк для Rust, основанный на генерации кода во время компиляции. Он отлично сочетает в себе эффективность разработки, производительность и стабильность, выполняя роль как ORM, так и компилятора динамического SQL.
https://github.com/rbatis/rbatis
👉 @rust_lib
Rbatis — это высокопроизводительный ORM-фреймворк для Rust, основанный на генерации кода во время компиляции. Он отлично сочетает в себе эффективность разработки, производительность и стабильность, выполняя роль как ORM, так и компилятора динамического SQL.
https://github.com/rbatis/rbatis
👉 @rust_lib
👍5🔥4❤3🥰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
Цель LSP-AI — помогать и усиливать возможности программистов, интегрируясь с инструментами, которые они уже знают и любят, а не заменять их.
Небольшой список редакторов, с которыми он работает:
- VS Code
- NeoVim
- Emacs
- Helix
- Sublime
И ещё со множеством других редакторов.
https://github.com/SilasMarvin/lsp-ai
👉 @rust_lib
👍5🔥2🗿2❤1🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
Pumpkin — это сервер Minecraft, полностью написанный на Rust. Он предлагает быстрый, эффективный и настраиваемый игровой опыт. В основе — производительность и комфорт игроков при сохранении ключевых механик игры.
- Производительность: использование многопоточности для максимальной скорости и эффективности.
- Совместимость: поддержка последних версий серверов Minecraft (Java и Bedrock) при строгом следовании ванильной механике.
- Безопасность: защита от известных уязвимостей и приоритет безопасности.
- Гибкость: высокая степень настройки, возможность отключать ненужные функции.
- Расширяемость: база для разработки плагинов.
https://github.com/Pumpkin-MC/Pumpkin
👉 @rust_lib
- Производительность: использование многопоточности для максимальной скорости и эффективности.
- Совместимость: поддержка последних версий серверов Minecraft (Java и Bedrock) при строгом следовании ванильной механике.
- Безопасность: защита от известных уязвимостей и приоритет безопасности.
- Гибкость: высокая степень настройки, возможность отключать ненужные функции.
- Расширяемость: база для разработки плагинов.
https://github.com/Pumpkin-MC/Pumpkin
👉 @rust_lib
👍14❤2🥰1
Думай как компилятор: позиции и значения в Rust
Некоторое время назад мне попался в Интернете вопрос о таком синтаксисе в Rust:
Автору вопроса было интересно, как компилятор понимает такой код, особенно, если в данном случае используется не ссылка, а умный указатель. Я написал ему пространный ответ, но потом подумал, что стоило бы ещё развернуть этот текст и переработать в статью для блога, на случай, если такой вопрос интересует и более широкую аудиторию.
В настоящее время я не работаю над компилятором Rust и, в сущности, никогда не работал, но семантику языка я знаю хорошо. Если вы корифей Rust, то этот пост может быть вам не слишком интересен, разве что вы хотели бы подробнее разобраться с категориями значений в Rust. Но, если вы не так много времени тратите на изучение тонких нюансов языков программирования — надеюсь, вам понравится одним глазочком заглянуть в этот мир.
https://habr.com/ru/articles/935568/
original https://steveklabnik.com/writing/thinking-like-a-compiler-places-and-values-in-rust/
👉 @rust_lib
Некоторое время назад мне попался в Интернете вопрос о таком синтаксисе в Rust:
*pointer_of_some_kind = blah;
Автору вопроса было интересно, как компилятор понимает такой код, особенно, если в данном случае используется не ссылка, а умный указатель. Я написал ему пространный ответ, но потом подумал, что стоило бы ещё развернуть этот текст и переработать в статью для блога, на случай, если такой вопрос интересует и более широкую аудиторию.
В настоящее время я не работаю над компилятором Rust и, в сущности, никогда не работал, но семантику языка я знаю хорошо. Если вы корифей Rust, то этот пост может быть вам не слишком интересен, разве что вы хотели бы подробнее разобраться с категориями значений в Rust. Но, если вы не так много времени тратите на изучение тонких нюансов языков программирования — надеюсь, вам понравится одним глазочком заглянуть в этот мир.
https://habr.com/ru/articles/935568/
original https://steveklabnik.com/writing/thinking-like-a-compiler-places-and-values-in-rust/
👉 @rust_lib
👍8❤1🥰1
Leptos
Это современный фреймворк для разработки веб-приложений на Rust с реактивным подходом. Он позволяет писать как фронтенд, так и бэкенд, используя единый стек, с акцентом на производительность и безопасность.
Особенности:
⚡ Высокая скорость работы благодаря компиляции в WebAssembly и оптимизациям Rust.
🔄 Реактивность: обновления интерфейса происходят автоматически при изменении состояния.
🛠 Полный стек: можно писать и серверный, и клиентский код на Rust.
🌐 SSR (Server-Side Rendering) и гидратация для SEO и быстрого первого рендера.
🧩 Богатая экосистема и возможность использовать привычные паттерны вроде компонентов.
Фреймворк позиционируется как альтернатива React/Vue/Svelte, но с силой и безопасностью Rust.
https://github.com/leptos-rs/leptos
👉 @rust_lib
Это современный фреймворк для разработки веб-приложений на Rust с реактивным подходом. Он позволяет писать как фронтенд, так и бэкенд, используя единый стек, с акцентом на производительность и безопасность.
Особенности:
⚡ Высокая скорость работы благодаря компиляции в WebAssembly и оптимизациям Rust.
🔄 Реактивность: обновления интерфейса происходят автоматически при изменении состояния.
🛠 Полный стек: можно писать и серверный, и клиентский код на Rust.
🌐 SSR (Server-Side Rendering) и гидратация для SEO и быстрого первого рендера.
🧩 Богатая экосистема и возможность использовать привычные паттерны вроде компонентов.
Фреймворк позиционируется как альтернатива React/Vue/Svelte, но с силой и безопасностью Rust.
https://github.com/leptos-rs/leptos
👉 @rust_lib
👍11❤4🤔2🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
Ripdrag
Утилита Drag and Drop, написанная на Rust и GTK4
https://github.com/nik012003/ripdrag
👉 @rust_lib
Утилита Drag and Drop, написанная на Rust и GTK4
https://github.com/nik012003/ripdrag
👉 @rust_lib
👍6❤1🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
Pake
🤱🏻 Превратите любую веб-страницу в настольное приложение с помощью Rust.
Особенности:
-Упаковка сайта в exe/dmg/appimage без лишних зависимостей.
-Основан на Tauri — быстрый, лёгкий, с низким потреблением памяти.
-Поддержка кастомных иконок, заголовков окна, горячих клавиш.
-Безопаснее, чем Electron, так как вес приложения в разы меньше и нет лишнего Node.js-кода.
-Работает на Windows, macOS и Linux.
https://github.com/tw93/Pake
👉 @rust_lib
🤱🏻 Превратите любую веб-страницу в настольное приложение с помощью Rust.
Особенности:
-Упаковка сайта в exe/dmg/appimage без лишних зависимостей.
-Основан на Tauri — быстрый, лёгкий, с низким потреблением памяти.
-Поддержка кастомных иконок, заголовков окна, горячих клавиш.
-Безопаснее, чем Electron, так как вес приложения в разы меньше и нет лишнего Node.js-кода.
-Работает на Windows, macOS и Linux.
https://github.com/tw93/Pake
👉 @rust_lib
👍14🥰3❤2🔥2
An Optimization That’s Impossible in Rust
Автор разбирает интересный случай оптимизации, которая возможна в C/C++, но недостижима в Rust из-за модели заимствований и строгих правил работы с aliasing.
Речь идёт о ситуации, где компилятор C может агрессивно оптимизировать код, предполагая отсутствие пересечения указателей (если нет
В итоге:
- В C/C++ оптимизация возможна, но небезопасна без явных аннотаций.
- В Rust - безопасность всегда гарантируется, но ценой отказа от определённых оптимизаций.
- Для производительного кода в Rust приходится использовать небезопасные конструкции (
https://tunglevo.com/note/an-optimization-thats-impossible-in-rust/
👉 @rust_lib
Автор разбирает интересный случай оптимизации, которая возможна в C/C++, но недостижима в Rust из-за модели заимствований и строгих правил работы с aliasing.
Речь идёт о ситуации, где компилятор C может агрессивно оптимизировать код, предполагая отсутствие пересечения указателей (если нет
restrict). В Rust же гарантии безопасности требуют, чтобы ссылки не пересекались, и это ограничение мешает сделать такую же оптимизацию, даже если на практике пересечения не происходит.В итоге:
- В C/C++ оптимизация возможна, но небезопасна без явных аннотаций.
- В Rust - безопасность всегда гарантируется, но ценой отказа от определённых оптимизаций.
- Для производительного кода в Rust приходится использовать небезопасные конструкции (
unsafe) или вручную подсказывать компилятору.https://tunglevo.com/note/an-optimization-thats-impossible-in-rust/
👉 @rust_lib
👍7❤1🥰1😁1
Redox - это операционная система, написанная полностью на Rust. Проект вдохновлён принципами Unix, но стремится к более безопасной и современной архитектуре. В Redox используются микроядерный подход, драйверы и сервисы запускаются в пространстве пользователя, что уменьшает поверхность атак и повышает стабильность.
Кроме ядра, экосистема включает файловую систему TFS, собственный дисплейный сервер Orbital и набор утилит. Разработчики делают упор на безопасные абстракции Rust и минимизацию использования небезопасного кода.
https://gitlab.redox-os.org/redox-os/redox
👉 @rust_lib
Кроме ядра, экосистема включает файловую систему TFS, собственный дисплейный сервер Orbital и набор утилит. Разработчики делают упор на безопасные абстракции Rust и минимизацию использования небезопасного кода.
https://gitlab.redox-os.org/redox-os/redox
👉 @rust_lib
🔥23👍12❤4🥰2
Неожиданный скачок продуктивности благодаря Rust
Бэкенд платформы Lubeno полностью написан на Rust. Он вырос до таких размеров, что я уже не могу удерживать все части его кодовой базы в голове.
По моему опыту, на этом этапе проекты обычно сталкиваются со значительным замедлением. Становится сложно обеспечивать отсутствие непредусмотренных последствий от внесения изменений.
Выяснилось, что благодаря гарантиям безопасности Rust я гораздо увереннее работаю с кодовой базой. И эта уверенность позволяет мне рефакторить даже критичные части приложения, что крайне положительно влияет на мою продуктивность и удобство поддержки продукта в долгосрочной перспективе.
https://habr.com/ru/articles/944706/
original https://lubeno.dev/blog/rusts-productivity-curve
👉 @rust_lib
Бэкенд платформы Lubeno полностью написан на Rust. Он вырос до таких размеров, что я уже не могу удерживать все части его кодовой базы в голове.
По моему опыту, на этом этапе проекты обычно сталкиваются со значительным замедлением. Становится сложно обеспечивать отсутствие непредусмотренных последствий от внесения изменений.
Выяснилось, что благодаря гарантиям безопасности Rust я гораздо увереннее работаю с кодовой базой. И эта уверенность позволяет мне рефакторить даже критичные части приложения, что крайне положительно влияет на мою продуктивность и удобство поддержки продукта в долгосрочной перспективе.
https://habr.com/ru/articles/944706/
original https://lubeno.dev/blog/rusts-productivity-curve
👉 @rust_lib
👍17❤3🥰2👎1
Plotlars - это многофункциональная библиотека на Rust, которая выступает в роли обёртки вокруг библиотеки Plotly, соединяя мощную библиотеку анализа данных Polars с Plotly.
Она упрощает процесс создания визуализаций из датафреймов, позволяя разработчикам сосредоточиться на анализе данных, а не на тонкостях построения графиков.
https://github.com/alceal/plotlars
👉 @rust_lib
Она упрощает процесс создания визуализаций из датафреймов, позволяя разработчикам сосредоточиться на анализе данных, а не на тонкостях построения графиков.
https://github.com/alceal/plotlars
👉 @rust_lib
👍10🥰3❤1