Rust
2.02K subscribers
118 photos
85 videos
2 files
159 links
Полезный контент по программированию на Rust
Download Telegram
Rust Lang Уроки

Начало работы с языком программирования Rust & Visual Studio Code. Debugging & unit tests
Переменные и типы данных в Rust
Арифметические операции и операции сравнения. Язык Rust
Логические операции и конструкция if...else. Язык Rust
Почему Rust? ❤️ Конструкция match
Функции. Язык Rust
Структуры. Язык Rust. Анджелина и Бред вместе ❤️ благодаря структурам
Tuples | кортежи. Структуры-tuples. Язык Rust
Массивы. Язык программирования Rust.
Циклы loop | while | for. Язык Rust.

источник

👉 @rust_lib
👍91🔥1🥰1🤮1
Rust Programming

RUST Based Desktop on Linux - System76 chose this over C Programming!
RUST in the Linux Kernel - Coming sooner than you think!
Create your first RUST Program on LINUX | Rust Programming for Beginners
Use RUSTUP to create your first RUST Program on LINUX | Rust Programming for Beginners (EP1)
How to Create a Rust Project using Cargo on Linux (EP2)
How to Add a Crate/Dependency to Rust using Cargo (EP3)
RUST might be coming to UEFI BIOS Firmware on Linux

👉 @rust_lib
👍141🥰1🤮1
Microsoft активно развивает поддержку Windows-драйверов на языке Rust, предоставляя библиотеку windows-drivers-rs. Этот проект открывает новые возможности для создания надежных и безопасных драйверов с использованием преимуществ Rust, таких как управление памятью и предотвращение распространенных ошибок.

Основные возможности:
- Поддержка стандартных API Windows для разработки драйверов.
- Интеграция с инструментами Windows Driver Kit (WDK).
- Удобство разработки благодаря типобезопасным интерфейсам.

Проект продолжает активно развиваться, и сообщество приветствуется к участию. Отличная возможность попробовать Rust в системном программировании и внести вклад в развитие экосистемы Windows!

https://github.com/microsoft/windows-drivers-rs

👉 @rust_lib
👍121🥰1
Как я проектирую и разрабатываю расширения Python на Rust

Вы наверняка видели множество статей на тему "Python, Rust - производительность, бла-бла-бла... Вот, реализуем foo2plus2". Вся беда в том, что все эти статьи демонстрируют очень простые примеры уровня "hello-world". Напротив, в этой статье я хочу рассказать о том, как я проектирую комплексные расширения и почему я принимаю те или иные проектные решения.

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

👉 @rust_lib
👍10🥰21🔥1😐1🤓1
Xplorer – красивый файловый менеджер, написанный на TypeScript и Rust.

Настраиваемый современный файловый менеджер, который работает на Windows, GNU/Linux и MacOS.

https://github.com/kimlimjustin/xplorer

👉 @rust_lib
👍113👎2🥰1
Rust: безопасный парсинг с нулевым копированием

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

📌 Что такое zero-copy парсинг?
Zero-copy — это техника обработки данных без создания дополнительных копий в памяти. В Rust это достигается за счёт продвинутой системы владения и заимствования (ownership & borrowing). Вместо копирования байтов Rust позволяет ссылаться на данные напрямую, что значительно ускоряет обработку.

https://itnext.io/rust-the-joy-of-safe-zero-copy-parsers-8c8581db8ab2

👉 @rust_lib
👍11🥰31🤡1
Media is too big
VIEW IN TELEGRAM
Учебное руководство по проекту на Rust – Сервер аутентификации с использованием Warp + JWT

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

0:00:00 Introduction and setup
0:06:42 Admin and user authentication
0:15:53 User data handling and roles
0:28:54 Introduction to user structures and attributes
0:45:41 Token management and claims analysis
1:01:48 Deep dive into roles and tokens
1:05:03 Error handling and permissions
1:14:58 Advanced error insights and JWT issues
1:29:19 Code analysis and issue resolution
1:31:24 Final touches and RS file exploration
1:34:50 Demo review and token creation

https://www.freecodecamp.org/news/rust-tutorial-authentication-server/

👉 @rust_lib
👍202🥰1
MinDNS

Минимальный DNS-сервер, написанный на Rust, с системой правил и журналированием.

https://github.com/sammwyy/mindns

👉 @rust_lib
👍121🥰1
Media is too big
VIEW IN TELEGRAM
Видео о Rust Traits

0:00 - Introduction
0:39 - Visual Example
2:47 - Using Traits in Rust
4:56 - Using Traits with Functions
9:06 - Conditionally implement functions with trait bounds

источник

👉 @rust_lib
👍53🥰2
Пишем простой драйвер на Rust

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

В своей повседневной работе я по-прежнему придерживаюсь C++, так как основная её часть связана с низкоуровневым программированием систем и ядра, а из этого языка легко задействовать написанный на С Windows API и COM API.

Rust — это язык для системного программирования, то есть он может справляться с теми же задачами, что и C/C++. Основное неудобство при этом создаёт громоздкий синтаксис, необходимый для преобразования типов С в типы Rust. Но это неудобство можно преодолеть, используя подобающие обёртки и макросы.

Короче говоря, я решил попробовать написать простой и полезный драйвер WDM. Это будет Rust-версия драйвера «Booster», о котором я пишу в своей книге (Windows Kernel Programming), позволяющего изменять приоритет любого потока на любое значение.

https://habr.com/ru/companies/ruvds/articles/882474/

👉 @rust_lib
👍133👎2🥰1
Использование OpenTelemetry в Rust

В статье рассмотрено, как использовать OpenTelemetry в Rust для мониторинга и трассировки приложений. OpenTelemetry — это мощный инструмент для сбора и анализа данных о производительности, который помогает отслеживать выполнение запросов в распределенных системах.

В статье показано, как интегрировать OpenTelemetry в приложение на Rust, используя библиотеку tracing и экспортировать данные в Jaeger. Приведены примеры кода, объясняющие настройку и использование трейсов для диагностики проблем и улучшения производительности.

Базовый конвейер с OpenTelemetry можно настроить с помощью opentelemetry_otlp. Затем создаётся слой tracing_opentelemetry, использующий этот конвейер, и добавляется в подписчик трассировки, который инициализируется.


// note that here, localhost:4318 is the default HTTP address
// for a local OpenTelemetry collector
let tracer = opentelemetry_otlp
::new_pipeline()
.tracing()
.with_exporter(opentelemetry_otlp::new_exporter().http().with_endpoint("localhost:4318"))
.install_batch(Tokio)
.unwrap();

// log level filtering here
let filter_layer = EnvFilter::try_from_default_env()
.or_else(|_| EnvFilter::try_new("info"))
.unwrap();

// fmt layer - printing out logs
let fmt_layer = fmt::layer().compact();

// turn our OTLP pipeline into a tracing layer
let otel_layer = tracing_opentelemetry::layer().with_tracer(tracer);

// initialise our subscriber
subscriber
.with(filter_layer)
.with(fmt_layer)
.with(otel_layer)
// The error layer needs to go after the otel_layer, because it needs access to the
// otel_data extension that is set on the span in the otel_layer.
.with(ErrorTracingLayer::new())
.init();


https://shuttle.rs/blog/2024/04/10/using-opentelemetry-rust

👉 @rust_lib
👍41🥰1
Dioxus

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

https://github.com/DioxusLabs

👉 @rust_lib
👍9😱32🥰1
5 алгоритмов на Rust, которые должен знать каждый разработчик

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

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

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

https://habr.com/ru/companies/beget/articles/887160/

👉 @rust_lib
👍13💩5👎43🥰1
Полный курс Rust от Google 🦀

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

Курс охватывает:

- Основы языка Rust
- Работа с памятью и безопасностью
- Современные концепции (итераторы, async, crate-экосистема и т.д.)
- Использование Rust для Android и WebAssembly
- Конкретные упражнения и практические примеры

Можно использовать как в виде самостоятельного материала, так и для проведения обучающих семинаров.
Подходит для разработчиков, знакомых с системным программированием, например, на C/C++.

https://github.com/google/comprehensive-rust

👉 @rust_lib
👍19🔥73🥰1