Rust
Open in Telegram
2 230
Subscribers
+324 hours
+37 days
+230 days
Posts Archive
2 230
Думай как компилятор: позиции и значения в Rust
Некоторое время назад мне попался в Интернете вопрос о таком синтаксисе в 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_lib2 230
Pumpkin — это сервер Minecraft, полностью написанный на Rust. Он предлагает быстрый, эффективный и настраиваемый игровой опыт. В основе — производительность и комфорт игроков при сохранении ключевых механик игры.
- Производительность: использование многопоточности для максимальной скорости и эффективности.
- Совместимость: поддержка последних версий серверов Minecraft (Java и Bedrock) при строгом следовании ванильной механике.
- Безопасность: защита от известных уязвимостей и приоритет безопасности.
- Гибкость: высокая степень настройки, возможность отключать ненужные функции.
- Расширяемость: база для разработки плагинов.
https://github.com/Pumpkin-MC/Pumpkin
👉 @rust_lib
2 230
Хотите научиться разрабатывать многопользовательские чаты на Rust?
👉 Присоединяйтесь к открытому уроку «Rust в деле: пишем многопользовательский чат с сервером, клиентом и CLI» 14 августа в 20:00 МСК.
На вебинаре мы:
◽️Освоим сетевой протокол поверх TCP для связи клиента и сервера.
◽️Разработаем сервер с бизнес-логикой и клиентскую часть приложения.
◽️Реализуем интерфейс командной строки (CLI) для управления чатом.
❗️ Этот урок — отличная подготовка перед стартом курса «Rust Developer. Professional» от OTUS. Все участники вебинара получат скидку на обучение!
Записаться на вебинар → https://vk.cc/cOwJbH
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
2 230
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
2 230
Компилируемый асинхронный ORM с динамическим SQL
Rbatis — это высокопроизводительный ORM-фреймворк для Rust, основанный на генерации кода во время компиляции. Он отлично сочетает в себе эффективность разработки, производительность и стабильность, выполняя роль как ORM, так и компилятора динамического SQL.
https://github.com/rbatis/rbatis
👉 @rust_lib
2 230
🤖 Тест по Rust проверь свои знания, готов ли ты к обучению на курсе.
Ответишь — пройдешь на курс "Rust Developer. Professional" от OTUS по специальной цене + получишь доступ к записям открытых уроков курса
За 5 месяцев обучения ты разберёшь ключевые особенности Rust и сможешь не только разрабатывать сложные программные продукты, но и в целом лучше проектировать ПО.
➡️ ПРОЙТИ ТЕСТ И ОЗНАКОМИТСЯ С ПРОГРАММОЙ: https://vk.cc/cOkYUj
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
2 230
Youki — контейнерный рантайм на Rust
Это реализация OCI-совместимого контейнерного рантайма, написанная на Rust. Проект нацелен на то, чтобы быть быстрым, безопасным и простым для сопровождения.
Основные особенности:
- Полная совместимость с OCI Runtime Specification
- Использование Rust для повышения безопасности за счёт управления памятью без использования
unsafe (по возможности).
- Модульная архитектура, что упрощает расширение и поддержку.
- Возможность заменить runc в таких инструментах, как Docker или Kubernetes.
https://github.com/youki-dev/youki
👉 @rust_lib2 230
✨ Книга Rust Embedded Drivers (RED)
- Научитесь писать простые драйверы для аппаратных устройств, работающие в экосистеме встраиваемого Rust.
- Драйвер для датчика DHT для считывания влажности и температуры.
- Освойте использование
embedded-hal-mock для тестирования.
https://red.implrust.com/
👉 @rust_lib2 230
«Почему компилятор 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_lib2 230
Lapce — это современный и быстрый текстовый редактор, написанный на Rust, с пользовательским интерфейсом на базе Flutter. Он задуман как альтернатива таким редакторам, как VS Code, с акцентом на производительность и расширяемость. Lapce использует архитектуру плагинов, поддерживает LSP (Language Server Protocol), имеет поддержку Vim-модального редактирования и обеспечивает отзывчивый интерфейс даже при работе с большими проектами.
Основные особенности:
* Полностью написан на Rust
* Интерфейс на Flutter, который компилируется в нативный код
* Поддержка LSP, автодополнения, подсветки синтаксиса
* Расширяемость через плагины
* Встроенная поддержка Vim-режима
* Высокая производительность и низкое потребление ресурсов
Проект активно развивается и открыт для контрибьюции. Lapce отлично подойдёт тем, кто ищет быстрый и настраиваемый редактор с современными технологиями под капотом.
https://github.com/lapce/lapce
👉 @rust_lib
2 230
🦀 Хотите стать Middle Rust-разработчиком?
Присоединяйтесь к открытому уроку «Техническое собеседование на Middle Rust разработчика» 24 июля в 20:00 МСК. В режиме онлайн разберем:
— Типичные вопросы, которые вам зададут на собеседовании.
— Задачи, которые дают кандидатам на уровне Middle.
— Частые ошибки на собеседованиях и способы их избежать.
❗️Этот урок — отличная подготовка к карьерному росту в разработке.
👉 Записаться на вебинар курса «Rust Developer. Professional» → https://vk.cc/cNKKfj
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
2 230
«Zero To Production In Rust»
Это субъективное введение в разработку backend-приложений на Rust.
Этот репозиторий служит вспомогательным материалом к книге: он содержит несколько снимков (состояний) кодовой базы проекта рассылки по электронной почте, отражающих её развитие по мере продвижения по книге.
https://github.com/LukeMathWalker/zero-to-production
👉 @rust_lib
2 230
toydb — это распределённая SQL-база данных, реализованная на Rust с нуля, включая журнал предзаписи (write-ahead log), хранилище на основе B-деревьев, транзакции с сериализуемой изоляцией, согласование с помощью Raft и SQL-парсер/исполнитель.
Особенности:
* Полная реализация Raft с поддержкой снапшотов
* SQL-парсер и исполнитель, поддерживающий выборку, фильтрацию, агрегацию, соединения, подзапросы и т.д.
* Хранилище ключ-значение на основе B-деревьев с журналом предзаписи
* Механизм MVCC с сериализуемой изоляцией и детекцией конфликтов
* Планировщик транзакций с дедлок-детекцией
* Управление схемой SQL (таблицы, индексы, и т.д.)
Цель проекта — изучение реализации распределённых баз данных с нуля. Он не предназначен для использования в продакшене.
https://github.com/erikgrinaker/toydb
👉 @rust_lib
2 230
🔧 Библиотека
Rustworkx - это высокопроизводительное средство для работы с графами на Python, написанное на Rust.
Она была разработана как альтернатива NetworkX, но с упором на производительность: реализация на Rust даёт значительный прирост скорости при сохранении удобного Python-интерфейса через PyO3. Поддерживаются как направленные, так и ненаправленные графы, деревья, DAG-и, и всё это — с кастомными атрибутами узлов и рёбер.
rustworkx предоставляет большое количество алгоритмов: обходы в глубину/ширину, кратчайшие пути (Dijkstra, A*), топологическую сортировку, поиск мостов, минимальные остовные деревья, изоморфизм графов, и многое другое.
Особенно полезна для задач, где критична производительность графовых операций: квантовые вычисления, биоинформатика, планировщики, оптимизация.
Установка:
pip install rustworkx
https://github.com/Qiskit/rustworkx
👉 @rust_lib2 230
Один на один с Rust
Всем привет! Я Влад Лунин, занимаюсь анализом сложных угроз в экспертном центре безопасности Positive Technologies. В последнее время часто приходится сталкиваться с вредоносным ПО (ВПО), написанном на Rust, поэтому хочу поделиться своим опытом реверса исполняемых файлов, написанном на этом языке. ВПО бывает как очень простое, так и очень сложное в своей реализации, и чаще всего эта сложность обусловлена особенностями Rust. Расскажу, какие подходы применяю для успешного реверса, а также про сложности, с которыми сталкивался, и как их преодолевал.
https://habr.com/ru/companies/pt/articles/915192/
👉 @rust_lib
2 230
Helix gpui
Это простая графическая оболочка для редактора Helix. Большинство модальных редакторов работают в терминале; я хочу изменить это и реализовать качественный модальный GUI-редактор.
Темы
gui, rust-lang, helix-editor
https://github.com/polachok/helix-gpui
👉 @rust_lib
2 230
🚀 Подборка Telegram каналов для программистов
Системное администрирование, DevOps 📌
https://t.me/bash_srv Bash Советы
https://t.me/win_sysadmin Системный Администратор Windows
https://t.me/sysadmin_girl Девочка Сисадмин
https://t.me/srv_admin_linux Админские угодья
https://t.me/linux_srv Типичный Сисадмин
https://t.me/devopslib Библиотека девопса | DevOps, SRE, Sysadmin
https://t.me/linux_odmin Linux: Системный администратор
https://t.me/devops_star DevOps Star (Звезда Девопса)
https://t.me/i_linux Системный администратор
https://t.me/linuxchmod Linux
https://t.me/sys_adminos Системный Администратор
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux
1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://t.me/DevLab1C 1С:Предприятие 8
https://t.me/razrab_1C 1C Разработчик
https://t.me/buh1C_prog 1C Программист | Бухгалтерия и Учёт
https://t.me/rabota1C_rus Вакансии для программистов 1С
Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.me/pythonofff Python академия.
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python
Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.me/game_devv Все о разработке игр
Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
БигДата, машинное обучение 📌
https://t.me/bigdata_1 Big Data, Machine Learning
Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT
https://t.me/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста
https://t.me/lifeproger Жизнь программиста. Авторский канал.
QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.me/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
https://t.me/xakep_2 Хакер Free
Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
Математика 📌
https://t.me/Pomatematike Канал по математике
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике
https://t.me/matgeoru Математика | Геометрия | Логика
Excel лайфхак📌
https://t.me/Excel_lifehack
https://t.me/mir_teh Мир технологий (Technology World)
Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
2 230
Yazi — ⚡️ Молниеносно быстрый файловый менеджер для терминала
Это файловый менеджер для терминала, написанный на Rust, основанный на неблокирующем асинхронном вводе/выводе. Он ориентирован на предоставление эффективного, удобного и настраиваемого опыта управления файлами.
• Встроенная поддержка нескольких протоколов изображений
• Полная асинхронная поддержка: все операции ввода-вывода являются асинхронными, задачи ЦП распределяются по нескольким потокам, что позволяет максимально эффективно использовать доступные ресурсы.
• Встроенная подсветка кода
• Интеграция с fd, rg, fzf, zoxy
• Vim-подобное управление
• Поддержка нескольких вкладок, предварительный просмотр с возможностью прокрутки (для видео, PDF-файлов, архивов, каталогов, кода и т. д.)
• Система тем, пользовательские макеты, корзина для мусора
и многое другое...
Совместим с GNU/Linux, Windows, macOS
https://github.com/sxyazi/yazi
👉 @rust_lib
2 230
🤖 Тест по Rust проверь свои знания, готов ли ты к обучению на курсе.
Ответишь — пройдешь на курс "Rust Developer. Professional" от OTUS по специальной цене + получишь доступ к записям открытых уроков курса
За 5 месяцев обучения ты разберёшь ключевые особенности Rust и сможешь не только разрабатывать сложные программные продукты, но и в целом лучше проектировать ПО.
➡️ ПРОЙТИ ТЕСТ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
2 230
Komorebi
Менеджер окон с тайлингом для Windows 🍉
Обзор
komorebi — это менеджер окон с тайлингом, работающий как расширение для Desktop Window Manager в Windows 10 и выше.
komorebi позволяет управлять оконными приложениями, виртуальными рабочими областями и мониторами через CLI. Его можно использовать вместе со сторонним софтом, таким как whkd и AutoHotKey, для настройки пользовательских сочетаний клавиш.
Цель komorebi — по умолчанию вносить как можно меньше изменений в операционную систему и окружение рабочего стола. Пользователи могут вносить нужные им правки в собственных конфигурационных файлах komorebi, но эти изменения останутся опциональными и отключёнными по умолчанию в обозримом будущем.
https://github.com/LGUG2Z/komorebi
👉 @rust_lib
