Rust Backend | YeaHub
178 subscribers
38 photos
14 videos
123 links
Теория, подготовка к интервью и курсы для Rust разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
#собес
🤔 Почему Rust имеет такую высокую производительность?

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😬 Rust-libp2p

Это библиотека, реализующая стек протоколов libp2p на языке Rust. Она предназначена для создания peer-to-peer (P2P) сетевых приложений и децентрализованных систем.

Основные особенности и предназначение инструмента:

🟠Модульность и масштабируемость
Предоставляет набор компонентов для построения сетевого взаимодействия, таких как обнаружение узлов, мультиплексирование соединений, маршрутизация и шифрование.
Безопасность и производительность: Использование Rust обеспечивает высокую безопасность памяти и производительность, что особенно важно в распределённых системах.
🟠Применение в децентрализованных проектах
Инструмент используется в таких проектах, как IPFS, блокчейн-сети и другие распределённые приложения, где необходим надёжный обмен данными между участниками сети.
Гитхаб

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#собес
🤔 Почему программы, написанные на Rust, потребляют небольшой объем памяти?

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
😅 В резюме: уверенный пользователь пк

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😎 Dioxus

Это современный фреймворк для разработки UI на Rust, похожий на React, но с преимуществами производительности и безопасностью Rust. Он поддерживает рендеринг на Web, Desktop, Mobile и даже TUI.
Гитхаб

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#собес
🤔 Как вы можете использовать cargo для создания и тестирования кода на Rust?

Cargo - это система управления проектами и пакетный менеджер для Rust. Команда cargo build используется для сборки проекта, а cargo test запускает тесты. Флаг --release позволяет компилировать проект с оптимизацией для производственной среды.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
👍 Scooter

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

Разработанный на Rust и лицензированный по MIT, Scooter предлагает удобный и быстрый способ редактирования файлов, что особенно полезно для разработчиков и системных администраторов.

Основные особенности и интересные аспекты проекта

🟠Интерактивный терминальный интерфейс
Пользователи могут искать строки по фиксированному тексту или регулярному выражению, вводить строку для замены и выбирать, какие именно вхождения изменять. Это значительно упрощает массовое редактирование кода или текстовых данных непосредственно из терминала.

🟠Поддержка регулярных выражений
Помимо поиска по фиксированным строкам, Scooter поддерживает использование регулярных выражений с возможностью задействования capture-групп. Это позволяет создавать сложные шаблоны для замены, адаптированные под конкретные задачи.

🟠Интеграция с системными файлами
Scooter учитывает файлы, указанные в .gitignore и .ignore, что позволяет исключать ненужные каталоги из поиска и сосредоточиться на актуальных данных.

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

🟠Интеграция с редакторами
Существуют конфигурации для интеграции с популярными редакторами, такими как Neovim и Helix, что позволяет запускать Scooter в виде плавающего окна, не покидая среды разработки.

Scooter представляет интерес благодаря своей простоте и эффективности, а также тому, что он решает реальную проблему – быстрое и точное редактирование большого объема текстовой информации в командной строке. Это делает его полезным инструментом для разработчиков, системных администраторов и всех, кто работает с текстовыми файлами в терминале.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#собес
🤔 Чем отличается enum от struct в Rust?

Struct используется для объединения данных, где все поля всегда присутствуют, что удобно для хранения сложных объектов с фиксированными свойствами. Enum, напротив, позволяет хранить одно значение из нескольких вариантов, что делает его полезным для представления состояния или выбора из нескольких опций.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😅 Punktf

Punktf - кроссплатформенный менеджер dotfiles, написанный на Rust, который упрощает управление и синхронизацию конфигурационных файлов на разных системах.

Для Rust-разработчика проект полезен своей производительностью, безопасностью и удобством автоматизации настройки среды, что облегчает перенос конфигураций между устройствами.
brew install michidk/tools/punktf
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#собес
🤔 Приведите пример impl-блока в Rust

impl -блок используется для добавления методов к структурам или перечислениям. Это позволяет инкапсулировать логику, связанную с определённым типом данных.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
POV: как программисты комментируют свой код.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
👍 5 алгоритмов на Rust, которые должен знать каждый разработчик

Кто-то приходит в Rust ради безопасной работы с памятью, кто-то — ради скорости, а кто-то просто потому, что «все нормальные языки уже попробовал». Но что бы ни привело вас в этот уголок низкоуровневой мощи, без хорошего знания алгоритмов далеко не уедешь.

Писать код на Rust — это не просто бороться с borrow checker, но и делать его действительно эффективным. Ведь никакой язык не спасет от тормозов, если алгоритмы выбраны неудачно.

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#собес
🤔 Как создать бесконечный цикл в Rust?

Для создания бесконечного цикла используется ключевое слово loop . Для выхода из цикла применяется ключевое слово break .

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
👍 Training a Rust 1.5B Coder LM with Reinforcement Learning (GRPO)

Статья подробно рассказывает о процессе обучения специализированной языковой модели для генерации кода на Rust, обладающей 1.5 млрд параметров.

Авторы применяют метод обучения с подкреплением (GRPO) с использованием обратной связи от инструментов Rust (компилятор и система сборки cargo). Это позволяет модели учиться генерировать код, который успешно компилируется, проходит линтер (cargo clippy) и unit-тесты.

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

Материал показывает, как можно использовать инструменты Rust для автоматизированной проверки качества кода, что может служить основой для создания интеллектуальных помощников и средств автоматизации.
Читать статью

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#собес
🤔 Как можно изменять переменные в Rust?

B Rust данные по умолчанию неизменяемы. Чтобы сделать переменную изменяемой, используется ключевое слово mut .

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#собес
🤔 Что происходит с заимствованными данными после завершения функции?

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😇 PgDog — это инструмент для горизонтального масштабирования PostgreSQL, объединяющий функции шардирования, пула соединений и балансировщика нагрузки.

Разработанный на языке Rust, он обеспечивает высокую производительность и надёжность, позволяя масштабировать базы данных без необходимости изменения кода приложений.

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

Шардирование: PgDog способен автоматически распределять данные между несколькими шардами, обеспечивая эффективное управление большими объёмами информации.

Пул соединений: Поддерживает транзакционное и сессионное пуллинг, позволяя тысячам клиентов использовать ограниченное количество соединений с сервером PostgreSQL, что оптимизирует использование ресурсов.

Балансировка нагрузки: Распределяет запросы между основными и реплицированными базами данных, обеспечивая равномерную загрузку и повышая отказоустойчивость системы.

Благодаря этим возможностям, PgDog может управлять сотнями баз данных и обрабатывать сотни тысяч соединений, что делает его мощным инструментом для масштабирования и оптимизации производительности PostgreSQL-систем.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#собес
🤔 В чём разница между .unwrap() и .expect() в Rust?

Метод .unwrap() вызывает панику, если значение отсутствует, отображая стандартное сообщение об ошибке. Метод .expect() делает то же самое, но позволяет указать собственное сообщение об ошибке.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#новости
🤯 В Ubuntu 25.10 решено заменить GNU Coreutils на uutils, написанные на Rust

Джон Сигер (Jon Seager), вице-президент компании Canonical по инжинирингу и технический лидер проекта Ubuntu, представил инициативу по замене в Ubuntu системных утилит на аналоги, написанные на языке Rust. Первой целью инициативы заявлен перевод Ubuntu 25.10 на использование по умолчанию инструментария uutils вместо набора утилит GNU Coreutils. Если эксперимент будет признан удачным, то uutils также будут задействованы по умолчанию в LTS-ветке Ubuntu 26.04.

Замена коснётся более ста утилит, входящих в состав Сoreutils, включая sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln и ls. В настоящее время утилиты uutils уже применяются по умолчанию в дистрибутиве Apertis, основанном на Debian, а также в независимом дистрибутиве AerynOS (SerpentOS). Опубликованный на прошлой неделе выпуск пакета uutils coreutils 0.0.30 успешно проходит 507 тестов (в прошлом выпуске 506, в позапрошлом - 476) из эталонного тестового набора GNU Coreutils. 69 тестов завершилось неудачей, а 41 тест был пропущен. В ближайшие недели также планируется приступить к работе над заменой в Ubuntu утилит su и sudo на пакет sudo-rs. Из рассматриваемых проектов дополнительно упоминаются zlib-rs и ntpd-rs.



В качестве причины миграции называется желание повысить надёжность и безопасность утилит, лежащих в основе дистрибутива. Использование Rust даст возможность снизить риск появления ошибок при работе с памятью, таких как обращение к области памяти после её освобождения и выход за границы буфера. По мнению Джона Сигера, защита от подобных ошибок повысит гарантии безопасности, а с повышением безопасности увеличится и общая надёжность работы системы.

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

Для тестирования замены в Ubuntu системных компонентов подготовлен проект oxidizr, предлагающий инструментарий командной строки для управления экспериментами с системой, связанными с заменой традиционных утилит на альтернативы, написанные на Rust. В настоящее время в oxidizr доступны эксперименты для перехода по умолчанию на использование пакетов uutils coreutils, uutils findutils, uutils diffutils и sudo-rs. Например, для замены в своей системе coreutils и findutils достаточно выполнить команду "sudo oxidizr enable --experiments coreutils findutils", а для возвращения в исходное состояние можно использовать команду "oxidizr disable".

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM