fa
Feedback
Rust

Rust

رفتن به کانال در Telegram

Полезный контент по программированию на Rust

نمایش بیشتر
2 227
مشترکین
-224 ساعت
اطلاعاتی وجود ندارد7 روز
-130 روز
آرشیو پست ها
Rust
2 227
Dioxus Это современный фреймворк для разработки UI на Rust, похожий на React, но с преимуществами производительности и безопа
Dioxus Это современный фреймворк для разработки UI на Rust, похожий на React, но с преимуществами производительности и безопасностью Rust. Он поддерживает рендеринг на Web, Desktop, Mobile и даже TUI. https://github.com/DioxusLabs 👉 @rust_lib

Rust
2 227
Использование OpenTelemetry в Rust В статье рассмотрено, как использовать OpenTelemetry в Rust для мониторинга и трассировки
Использование 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

Rust
2 227
Пишем простой драйвер на Rust Популярность Rust неуклонно растёт, а с ней и сопутствующая экосистема. И оно не удивительно, в
Пишем простой драйвер на 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

Rust
2 227
Видео о 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

Rust
2 227
MinDNS Минимальный DNS-сервер, написанный на Rust, с системой правил и журналированием. https://github.com/sammwyy/mindns 👉
MinDNS Минимальный DNS-сервер, написанный на Rust, с системой правил и журналированием. https://github.com/sammwyy/mindns 👉 @rust_lib

Rust
2 227
Учебное руководство по проекту на 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

Rust
2 227
Rust: безопасный парсинг с нулевым копированием В мире программирования производительность и безопасность данных — это два ва
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

Rust
2 227
Xplorer – красивый файловый менеджер, написанный на TypeScript и Rust. Настраиваемый современный файловый менеджер, который р
Xplorer – красивый файловый менеджер, написанный на TypeScript и Rust. Настраиваемый современный файловый менеджер, который работает на Windows, GNU/Linux и MacOS. https://github.com/kimlimjustin/xplorer 👉 @rust_lib

Rust
2 227
Как я проектирую и разрабатываю расширения Python на Rust Вы наверняка видели множество статей на тему "Python, Rust - произв
Как я проектирую и разрабатываю расширения Python на Rust Вы наверняка видели множество статей на тему "Python, Rust - производительность, бла-бла-бла... Вот, реализуем foo2plus2". Вся беда в том, что все эти статьи демонстрируют очень простые примеры уровня "hello-world". Напротив, в этой статье я хочу рассказать о том, как я проектирую комплексные расширения и почему я принимаю те или иные проектные решения. https://habr.com/ru/articles/767254/ 👉 @rust_lib

Rust
2 227
Microsoft активно развивает поддержку Windows-драйверов на языке Rust, предоставляя библиотеку windows-drivers-rs. Этот проек
Microsoft активно развивает поддержку Windows-драйверов на языке Rust, предоставляя библиотеку windows-drivers-rs. Этот проект открывает новые возможности для создания надежных и безопасных драйверов с использованием преимуществ Rust, таких как управление памятью и предотвращение распространенных ошибок. Основные возможности: - Поддержка стандартных API Windows для разработки драйверов. - Интеграция с инструментами Windows Driver Kit (WDK). - Удобство разработки благодаря типобезопасным интерфейсам. Проект продолжает активно развиваться, и сообщество приветствуется к участию. Отличная возможность попробовать Rust в системном программировании и внести вклад в развитие экосистемы Windows! https://github.com/microsoft/windows-drivers-rs 👉 @rust_lib

Rust
2 227
+6
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

Rust
2 227
+9
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

Rust
2 227
+7
Rust Programming Tutorial #1 - Introduction To Rust Programming #2 - Using Rust Tools (cargo, rustfmt) #3 - Variables, Constants and Shadowing #4 - Data Types #5 - Console Input #6 - Arithmetic and Type Casting #7 - Conditions and Control Flow (if/else if/else) #8 - Functions, Expressions & Statements #9 - Memory Management, Heap & Stack 👉 @rust_lib

Rust
2 227
+9
Учим Rust вместе Hello World Guessing Game переменные и типы данных функции и контроль выполнения программы разбор задач владение заимствование и слайсы структуры и методы перечислимые типы пакеты и модули вектор строки HashMap разбор задачи обработка ошибок дженерики трейты https://www.youtube.com/playlist?list=PLXhUgKrQD6UoggzaDTQ1luq3XMpYboMTM 👉 @rust_lib

Rust
2 227
Реализуем на Rust пул потоков с балансировкой нагрузки, пользуясь только стандартной библиотекой Этот пост написан в основном
Реализуем на Rust пул потоков с балансировкой нагрузки, пользуясь только стандартной библиотекой Этот пост написан в основном под впечатлением от лекции Роба Пайка "Конкурентность – это не параллелизм". Зачастую, пускаясь в решение задачи, полезно чётко видеть перед собой цель, которую хочешь достичь. Какая же цель стоит перед нами в данном случае? В простейшем смысле нам нужна система, которая позволяла бы: 🔹Распланировать некоторую работу так, чтобы ею занималось множество исполнителей 🔹Иметь возможность получать результаты работы, сделанной этими исполнителями 🔹Обеспечить, что исполнители достаточно загружены, но при этом не страдают от выгорания Обратите внимание: система такого рода не привязана напрямую к компьютерам. Подобная модель вполне применима и к некоторому человеческому коллективу, которому требуется решить определённые задачи. Как же нам смоделировать и решить эту проблему? https://habr.com/ru/companies/timeweb/articles/761398/ 👉 @rust_lib

Rust
2 227
Yazi — ⚡️ Молниеносно быстрый файловый менеджер для терминала Это файловый менеджер для терминала, написанный на Rust, основанный на неблокирующем асинхронном вводе/выводе. Он ориентирован на предоставление эффективного, удобного и настраиваемого опыта управления файлами. • Встроенная поддержка нескольких протоколов изображений • Полная асинхронная поддержка: все операции ввода-вывода являются асинхронными, задачи ЦП распределяются по нескольким потокам, что позволяет максимально эффективно использовать доступные ресурсы. • Встроенная подсветка кода • Интеграция с fd, rg, fzf, zoxy • Vim-подобное управление • Поддержка нескольких вкладок, предварительный просмотр с возможностью прокрутки (для видео, PDF-файлов, архивов, каталогов, кода и т. д.) • Система тем, пользовательские макеты, корзина для мусора и многое другое... Совместим с GNU/Linux, Windows, macOS https://github.com/sxyazi/yazi 👉 @rust_lib

Rust
2 227
Fuzzer Development With Rust (Basic) Каждый исследователь должен уметь разрабатывать собственные инструменты для fuzzing (фаззинга). По этой причине я начал обучать созданию таких инструментов с нуля в рамках этого проекта, чтобы исследователи могли использовать свои фаззеры для выявления уязвимостей в области безопасности в открытых инструментах, библиотеках и коде, которые компании разрабатывают для внутреннего использования. В этом обучении мы объяснили все концепции с примерами на языке программирования Rust, чтобы обеспечить правильное понимание необходимых понятий. https://github.com/raminfp/fuzzer-development-with-rust 👉 @rust_lib

Rust
2 227
Rust: рефакторинг для новичков Недавно Нирадж Авинаш выложил свой код в группе по языку программирования Rust на LinkedIn. Ег
Rust: рефакторинг для новичков Недавно Нирадж Авинаш выложил свой код в группе по языку программирования Rust на LinkedIn. Его цель — изучить основы Rust, но я нашел его пример хорошей основой для своей статьи. Задача состоит в том, чтобы показать, как можно улучшать код на Rust поэтапно, и продемонстрировать, каких ошибок могут избегать новички, начиная с их кода. В целях упрощения, пожалуйста, не обращайте внимания на очевидные недостатки этой простой программы. https://betterprogramming.pub/rust-refactoring-for-beginners-15a3270ce45d 👉 @rust_lib

Rust
2 227
Разбираем выравнивание данных и структуру памяти в Rust Мне нравится оптимизировать код — определение и исправление неэффекти
Разбираем выравнивание данных и структуру памяти в Rust Мне нравится оптимизировать код — определение и исправление неэффективных участков кода приносит некое особое чувство удовлетворения в отличие от закидывания проблемы железом. Ведь последнее — пустая трата ресурсов и выбросов углерода! В процессе моей работы я много раз оптимизировал использование памяти датафреймов Python. Не учитывая различные особенности, зачастую наиболее быстрым решением является понижающее приведение — к примеру, конвертация столбца нулей и единиц из int в bool. И хотя это срабатывает, недавно к своему удивлению я узнал, что булевы числа не всегда отображаются в качестве одиночных битов. Так как же отображаются типы данных в памяти? Подобно тому, как аккуратно организованные стеллажи книг в библиотеке помогают легко найти нужную информацию, отображение данных в памяти может сильно повлиять на производительность и эффективность использования памяти вашего приложения. https://habr.com/ru/companies/beget/articles/856720/ 👉 @rust_lib

Rust
2 227
CBLT — безопасный, быстрый и минималистичный веб-сервер на языке программирования Rust Для изучения нового языка программиров
CBLT — безопасный, быстрый и минималистичный веб-сервер на языке программирования Rust Для изучения нового языка программирования я использую следующий подход. Сначала я читаю учебник по этому языку программирования, в котором объясняются синтаксис, идиомы, философия и принципы работы языка. После этого я пишу небольшой пет-проект на этом языке программирования. На пет-проекте я немного практикуюсь с новым языком, с его стандартными библиотеками и популярными фреймворками. Чтобы погрузиться сильнее в язык, вместо пет-проекта я начинаю писать свои библиотеки для работы с базами данных (ORM), JSON, акторами, MVC веб-фреймворком, логированием и т.д. Библиотеки, которые вряд ли будут кому-то нужны, но они помогут мне лучше понять язык программирования. На удивление, с языком Rust я добрался до написания своего веб-сервера. Раньше такого не было. Думаю, это из-за того, что Rust — это язык системного программирования и грех на нём не попробовать заняться оптимизацией перформанса. В итоге я столкнулся с тем, что Rust не имеет аналогов Nginx, Lighttpd, Caddy, HAProxy, Apache, Tomcat, Jetty и т.д. Все эти веб-сервера написаны на C, Go, Java и т.д. Имеются только веб-фреймворки: Actix, Axum, Rocket, Hyper и т.д. https://habr.com/ru/articles/857306/ 👉 @rust_lib