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

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

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

Для связи: @ruslan_kuyanets
Download Telegram
Когда решил начать учить Rust ...
И сразу же передумал

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
😁1
#собес
🤔 Объясни концепцию нулевой копии в Rust и как она помогает оптимизировать производительность. Чем она отличается от глубоких копий?

Zero-copy позволяет избегать лишнего копирования данных, передавая ссылки вместо полного дублирования. Это улучшает производительность, так как экономит память и время обработки. В отличие от deep сору, где создаётся полная копия данных, zero-сору работает с существующими данными напрямую.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#Собес
🤔 Что такое расширенные обобщения с использованием ассоциированных элементов и where-ограничений, и как их применять для создания мощных абстракций?

Расширенные обобщения позволяют создавать гибкие структуры и функции, которые работают с различными типами. Ассоциированные элементы обеспечивают дополнительные возможности для типов, реализующих трейт, а where -ограничения упрощают добавление условий для типов. Это усиливает контроль и безопасность в коде.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Hoppscotch — это открытая платформа для разработки API, предназначенная для упрощения тестирования и взаимодействия с API!

🚩 Она предоставляет удобный и быстрый интерфейс для отправки HTTP-запросов и получения ответов в реальном времени. Поддерживаются различные HTTP-методы, включая GET, POST, PUT, PATCH, DELETE и другие. Платформа также предлагает настраиваемые темы оформления и возможность установки в виде прогрессивного веб-приложения (PWA).
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Как реализовать расширенную обработку ошибок с использованием пользовательских типов ошибок, реализующих специфичные трейты, такие как From и Display?

B Rust пользовательские типы ошибок упрощают обработку ошибок, позволяя структурировать их по сценариям. Реализация трейтів, таких как From и Display, позволяет автоматически преобразовывать ошибки других типов в ваш тип и формировать читаемые сообщения для пользователей. Это делает код более понятным и упрощает управление ошибками.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
😎 Gatehouse – это гибкая библиотека для реализации механизмов авторизации, которая объединяет в себе несколько моделей контроля доступа: RBAC (role-based), ABAC (attribute-based) и ReBAC (relationship-based).

Этот инструмент разработан на Rust и предназначен для решения сложных задач авторизации в современных приложениях. Ниже приведены основные особенности и преимущества Gatehouse:

🟠 Многообразие парадигм авторизации: Gatehouse поддерживает три различных подхода к контролю доступа, что позволяет разработчикам создавать решения, максимально точно соответствующие требованиям их приложений.
🟠 Композиция политик: Возможность объединения различных политик с помощью логических операторов (AND, OR, NOT) дает гибкость при построении сложных правил авторизации.
🟠 Подробное трассирование: Библиотека предоставляет детальные отчеты об оценке политик, что значительно упрощает отладку и аудит решений по безопасности.
🟠 Fluent Builder API: Удобный и интуитивно понятный API позволяет быстро и безопасно создавать кастомные политики, минимизируя вероятность ошибок при разработке.
🟠 Типобезопасность и поддержка async: Благодаря сильной типизации и встроенной поддержке асинхронного программирования, Gatehouse легко интегрируется в современные высоконагруженные системы.

Преимущества Gatehouse над другими инструментами заключаются в его универсальности и гибкости: вместо того чтобы выбирать между разными моделями авторизации, разработчики могут использовать объединённое решение, которое адаптируется под любые сценарии и требования безопасности. Это делает Gatehouse отличным выбором для создания масштабируемых и надёжных систем контроля доступа в сложных программных продуктах.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что такое расширенное сопоставление шаблонов с использованием времени жизни и обобщений, и как оно применяется для сложных структур данных?

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

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

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

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

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Как оптимизировать использование памяти в Rust, используя выравнивание, SIMD- инструкции и работу с неинициализированной памятью через MaybeUninit ‹ T ›?

Оптимизация памяти в Rust включает три ключевых подхода: выравнивание данных для улучшения производительности CPU, использование SIMD- инструкций для параллельных вычислений и работу с неинициализированной памятью через MaybeUninit‹T› для предотвращения лишних затрат на инициализацию. Эти техники требуют внимания к безопасности, так как неправильное использование может привести к неопределённому поведению.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😴 Simon — легковесный веб-мониторинг для систем с поддержкой Docker и отслеживанием ресурсов.

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

Есть аутентификация через bcrypt и уведомления с вебхуками для Discord, Slack и др.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Объясни концепцию реализации кастомных итераторов в Rust. Как их можно использовать для создания переиспользуемых и эффективных конвейеров обработки данных?

Пользовательские итераторы реализуют трейт Iterator с метОдОм next. Они полезны для создания специфичных способов обхода данных и могут быть объединены с методами, такими как map и filter , для создания удобных конвейеров обработки.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#полезное
😊 Urx (сокращение от "Extracts URLs") — это инструмент на базе Rust, который я создал для сбора URL из различных OSINT архивов.

В результате для указанных доменов формируется обширный список URL‑адресов, который можно использовать в исследованиях, тестировании безопасности или при аналитической работе.

Основные функции Urx
🟠 Получение URL‑адресов сразу из нескольких источников (Wayback Machine, Common Crawl, OTX)
🟠 Гибкая фильтрация по расширениям, шаблонам или заранее заданным пресетам (например, «no‑image» для исключения изображений)
🟠 Поддержка различных форматов вывода (plain text, JSON, CSV)
🟠 Возможность направлять результаты в консоль, файлы или другие инструменты (через stdin для пайплайнов)
🟠 Валидация и проверка URL‑адресов по статус‑кодам и паттернам, а также извлечение дополнительных ссылок из собранных страниц

Urx значительно упрощает процесс сбора и анализа URL, сочетая высокую скорость работы (Rust, асинхронная обработка) и разнообразие функций для фильтрации, сортировки и экспорта данных.

Установка:
cargo install urx
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Объясни концепцию продвинутых возможностей параллелизма в Rust, таких как каналы с буферизацией (mpsc: channel) и пул потоков (rayon) для эффективного выполнения задач

Каналы ( mpsc ) позволяют передавать сообщения между потоками, а пул потоков ( rayon ) упрощает выполнение параллельных задач. Каналы подходят для явного взаимодействия между потоками, а rayon - для параллельной обработки данных.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Glicol — это экспериментальная среда для live-кодинга, где звуки рождаются из соединения узлов, как в модульном синтезаторе.

Написанный на Rust, он работает где угодно: в браузере, как VST-плагин или даже на аппаратуре вроде Bela.

Можно начинать с простых битов, а потом углубляться в сэмплерные точные синтезы — без необходимости устанавливать что-либо. Особенность Glicol — в его низком пороге входа, но и без ограничений для профессионалов.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#Собес
🤔 Какие существуют типы индексов в PostgreSQLu когда их использовать?

PostgreSQL поддерживает несколько типов индексов: B-Tree, Hash, GIN, GiST, BRIN, и SP-GiST. B-Tree подходит для поиска равенства и диапазона, Hash - только для равенства, GIN и GiST - для полнотекстового поиска, а BRIN оптимален для больших таблиц с последовательными данными.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 garde — это библиотека для валидации данных в Rust, то есть проверки, что структура или переменные соответствуют определённым правилам (например, "email должен быть валидным", "возраст больше 18", "строка не пустая" и т.д.).

garde позволяет:

🟠 Легко описывать правила валидации прямо внутри структур (через атрибуты).

🟠 Работать с вложенными структурами (inner types).

🟠 Поддерживает newtypes — обёртки над типами.

🟠 Писать свои кастомные валидаторы.

🟠 Проверка происходит во время исполнения, но декларативно выглядит как часть типа.

Пример использования
rust


use garde::Validate;

#[derive(Validate)]
struct User {
#[garde(length(min = 3))]
username: String,

#[garde(email)]
email: String,
}


Тут username должен быть минимум из 3 символов, а email — валидный адрес.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41
#Собес #CIcd
🤔 Что такое CI/CD?

CI/CD (Continuous Integration / Continuous Delivery) - это методология разработки, которая автоматизирует процесс тестирования и развертывания кода. Разработчики регулярно вносят изменения в общий репозиторий, где код проверяется и разворачивается автоматически. Это помогает быстрее выпускать новые функции и исправления с минимальными рисками.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔Что такое таблица в PostgreSQL и как её создать?

Таблица в PostgreSQL — это структура, используемая для хранения данных в виде строк и столбцов. Для создания таблицы используется команда CREATE TABLE имя_таблицы (список_ столбцов) ; .

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😊 Python на скорости Rust

Новый Function (fxn) — фреймворк, который компилирует Python-функции в нативный код с производительностью, сравнимой с Rust.

Как это работает?
🟠 Использует символическое трассирование на CPython для анализа функций
🟠 Генерирует промежуточное представление (IR)
🟠 Транслирует IR в C++ или Rust, а затем компилирует в бинарный код
🟠 Поддерживает платформы: Linux, Android, WebAssembly и др.

Пример
@compile
def fma(x: float, y: float, z: float) -> float:
return x * y + z
После компиляции вы получаете нативный бинарник, который можно запускать без интерпретатора Python.

Подробнее
Github

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#Собес
🤔 Как создать новую базу данных в PostgreSQL?

B PostgreSQL новую базу данных можно создать с помощью команды SQL CREATE DATABASE имя_базы; или используя утилиту командной строки createdb имя_базы

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