rust_code | Неотсортированное

Telegram-канал rust_code - Rust

6745

Rust programming language По всем вопросам- @haarrp @ai_machinelearning_big_data - машинное обучение @programming_books_it - бесплатные it книги @pythonl - 🐍 @ArtificialIntelligencedl - AI @datascienceiot - ml 📚

Подписаться на канал

Rust

Когда Zig круче Rust – массивы перечислений, позволяющие сэкономить память
https://habr.com/ru/articles/767036/

Читать полностью…

Rust

Алгебраические Типы Данных
https://habr.com/ru/articles/766682/

Читать полностью…

Rust

Обновление Rust-библиотеки Ormlib до версии 1.0.1. Что изменилось и почему это важно?
https://habr.com/ru/articles/766064/

Читать полностью…

Rust

Поток на ядро
https://habr.com/ru/articles/766028/

Читать полностью…

Rust

Rust 1.73.0: очищение сообщений о панике, изменение в работе с локальными данными потока
https://habr.com/ru/articles/765890/

Читать полностью…

Rust

Автоматизация разработки с помощью подхода DB-first
https://habr.com/ru/articles/765446/

Читать полностью…

Rust

Универсальный детектор кодировок на чистом Rust - порт версии для Python

https://github.com/nickspring/charset-normalizer-rs

@rust_code

Читать полностью…

Rust

🔥 Дайджест полезных материалов из мира Rust за неделю

Почитать:
Идиоматическая обработка ошибок в Rust
15 лучших бесплатных курсов по Linux
Rust против Go: практическое сравнение
Rust Tutorial 3: Handling Errors and Other Concepts
IoT with Rust on ESP: Connecting WiFi
Unlocking the Power of Native Modules in JavaScript: An Introductory Guide
Deprecated dispatchables removed from Polkadot SDK
Side by Side Series: Rust & Go - The Builder
AWS Lambda with Rust and SAM
Writing a game engine in Rust and Vulkan
Building a scheduler for a Rust application
Boost Your Productivity and Write Better Code with AI Tools 🪄
Rust vs. Zig: A Head-to-Head Comparison of Two Modern Systems Programming Languages

Посмотреть:
🌐 Лекция 0: введение и реклама Rust | Лекции о языка программирования Rust в ФТШ
🌐 CSS nth-child Just Got 100x Better (⏱ 00:56)
🌐 Clean Code Is Killing Your Projects (⏱ 09:20)

Хорошего дня!

@rust_code

Читать полностью…

Rust

👣 Eyra

Eyra - это пакет, поддерживающий создание программ на языке Rust, полностью реализованных на нем.

Он использует Origin для запуска и завершения программ и потоков, а также c-gull для ABI-совместимых реализаций функций libc.

Github

@rust_code

Читать полностью…

Rust

👣 microsoft/windows-drivers-rs

Платформа, позволяющая разрабатывать драйверы Windows на языке Rust. Разработана компанией Surface.

Github

@rust_code

Читать полностью…

Rust

JetBrains представили новую интегрированную среду разработки RustRover, ориентированную на написание приложений на языке Rust.

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


RustRover базируется на существующем открытом плагине intellij-rust, добавляющем поддержу Rust в IDE CLion и IntelliJ IDEA.

https://www.jetbrains.com/rust/

@rust_code

Читать полностью…

Rust

Собственный строковый тип на Rust
https://habr.com/ru/companies/ruvds/articles/761746/

Читать полностью…

Rust

🔥 Дайджест полезных материалов из мира : Rust за неделю

Почитать:
Enum в стиле Rust-а в Python
Learning Rust 🦀: 14 - Option Enum: An Enum and Pattern matching use case
Next rust validator, should be ergonomics and functional
The Embedded Rust ESP Development Ecosystem
My Web3 Journey with Solana
Introduction to graphs - BFS algorithm
How Rust memory management work to beginners.
Rust Tutorial 1: Writing Hello World
Building a PinePhone App With React and Tauri
Rust & MySQL: delete, insert data using crate sqlx.
Using arti to Connect to TOR Network and query WHOIS information in Rust

Посмотреть:
🌐 Learning To Code Is Easy (⏱ 08:59)
🌐 NEW React Hooks Saves 1K+ Lines Of Code (⏱ 01:00)

Хорошего дня!

@rust_code

Читать полностью…

Rust

Enum в стиле Rust-а в Python
https://habr.com/ru/articles/759978/

Читать полностью…

Rust

🔥 Дайджест полезных материалов из мира : Rust за неделю

Почитать:
Можно ли доверить компилятору оптимизацию вашего кода?
Упрощенный пример на Rust обучения нейронной сети на основе Candle Framework от Hugging Face
9 лучших консольных файловых менеджеров Linux
Идиоматический код на Rust для тех, кто перешел с других языков программирования
Introducing PassMeRust: Advanced Password Strength Calculator in Rust
Learning Rust 🦀: 13 - Pattern matching basics
Fetching Bitcoin Mempool Data from the Terminal
GreptimeDB Quickstart Guide - Seamlessly Launch Our Time-Series Database from the Ground Up
Rust, Go, Rinha e I/O
🚀 Discover the Rust Revolution for Shell Scripts with Mush 🚀
Why Rust Is the Optimal Choice for Deep Learning, and How to Start Your Journey with the Burn Deep Learning Framework
ESP32 Standard Library Embedded Rust: GPIO Interrupts
Moving from Typescript and Langchain to Rust and Loops
🚀 Mastering Integration Testing in Rust with Testcontainers 🧪

Посмотреть:
🌐 HTMX заменит Frontend?! WTF? (⏱ 12:12)
🌐 5+ CSS Features That Will Change How You Code (⏱ 17:58)
🌐 NEW Way To Create Variables In JavaScript (⏱ 01:00)

Хорошего дня!

@rust_code

Читать полностью…

Rust

Сборка мусора: как это делается в системном программировании
https://habr.com/ru/companies/timeweb/articles/766772/

Читать полностью…

Rust

Самый маленький Docker образ Rust приложения
https://habr.com/ru/articles/766620/

Читать полностью…

Rust

Async Concurrent Hashmap

https://github.com/Snojj25/quick-hash-cach

@rust_code

Читать полностью…

Rust

🔥 Дайджест полезных материалов из мира Rust за неделю

Почитать:
Rust 1.73.0: очищение сообщений о панике, изменение в работе с локальными данными потока
Проблема «error: future cannot be sent between threads safely» при использовании Rust-библиотек Tokio и Actix
Автоматизация разработки с помощью подхода DB-first
Вышел Chipmunk.v3
Explore the Power of AWS Services in this Latest Blog Post!
Edge IoT with Rust on ESP: HTTP Client
RPCIEGE - Skirmish 10
What to choose Golang or Rust?
RPCIEGE - Skirmish 9
Algora – Open source coding bounties
Learning Rust 🦀: 16 - Rust Collections: Vectors
Implementing Practical Byzantine Fault Tolerance
Rust & MySQL: JSON serialisation of result sets retrieved using crate sqlx.
🐚🦀Comandos shell reescritos em Rust

Посмотреть:
🌐 How To Create 3 Levels Of React Image Sliders - Beginner, Intermediate, Expert (⏱ 37:25)
🌐 This New CSS Property Is Simple Yet Useful (⏱ 00:54)

Хорошего дня!

@rust_code

Читать полностью…

Rust

Проблема «error: future cannot be sent between threads safely» при использовании Rust-библиотек Tokio и Actix
https://habr.com/ru/articles/765580/

Читать полностью…

Rust

Вышел Chipmunk.v3
https://habr.com/ru/articles/764936/

Читать полностью…

Rust

Rust — лучший язык для инфраструктуры данных
https://habr.com/ru/articles/764542/

Читать полностью…

Rust

Идиоматическая обработка ошибок в Rust
https://habr.com/ru/companies/piter/articles/764416/

Читать полностью…

Rust

Rust против Go: практическое сравнение
https://habr.com/ru/articles/763990/

Читать полностью…

Rust

🔥 Дайджест полезных материалов из мира Rust за неделю

Почитать:
Реализуем на Rust пул потоков с балансировкой нагрузки, пользуясь только стандартной библиотекой
Собственный строковый тип на Rust
ESP Embedded Rust: Multithreading with FreeRTOS Bindings
Managing Large DataList In Solana
Macos M2交叉编译性能差问题
Rust: The Future of Systems Programming?
Writing Rust bindings for Node.js with Neon
starting overview of my new project animal_game
How to abstract away library interfaces working directly through syntax in Rust with procedural macros
Rust Tutorial 2: Let's make a Guessing Game!
Exploring Modding Systems: A Journey With Lua and Rust
Managing Application Config in Rust

Посмотреть:
🌐 Экосистема React.js 2023 (⏱ 12:45)
🌐 The Best React State Management Solution Has Been There All Along (⏱ 05:38)
🌐 This CSS Feature Replaces CSS-In-JS (⏱ 01:00)

Хорошего дня!

@rust_code

Читать полностью…

Rust

Реализуем на Rust пул потоков с балансировкой нагрузки, пользуясь только стандартной библиотекой
https://habr.com/ru/companies/timeweb/articles/761398/

Читать полностью…

Rust

Yazi — молниеносный терминальный файловый менеджер, написанный на Rust.

Встроенная поддержка нескольких протоколов изображений
Полная асинхронная поддержка: все операции ввода-вывода являются асинхронными, задачи ЦП распределяются по нескольким потокам, что позволяет максимально эффективно использовать доступные ресурсы.
Встроенная подсветка кода
Интеграция с fd, rg, fzf, zoxy
Vim-подобное управление
Поддержка нескольких вкладок, предварительный просмотр с возможностью прокрутки (для видео, PDF-файлов, архивов, каталогов, кода и т. д.)
Система тем, пользовательские макеты, корзина для мусора
и многое другое...

Совместим с GNU/Linux, Windows, macOS

Github

@rust_code

Читать полностью…

Rust

👣 Fuzzer Development With Rust (Basic)

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

Github

@rust_code

Читать полностью…

Rust

🎥 Rust: рефакторинг для новичков

📌 Отсутствие идиом Rust
Опытным программистам Rust режет глаз тот факт, что следующая функция возвращает кортеж, а не Result<>:

fn add_student() -> (Student, bool)

Данный подход не только не является идиоматическим, но и вводит в заблуждение читателя кода. Непонятно, что подразумевает логическое значение bool. В ответ на вывод этой функции придется написать что-то сложное, как показано ниже:

// Добавление студента на курс
let (st, err) = add_student();

// Проверка наличия ошибки. В случае ошибки продолжить цикл
if !err {
continue;
}


Получается 5 строк с комментариями, объясняющими код. Это считается плохой практикой, так же как и короткие имена переменных.

📌 Рефакторинг
Сначала проведем рефакторинг этих фрагментов. То, что было:

fn add_student() -> (Student, bool) {
// ...
let mut st = Student {
name: "".to_string(),
age: 0,
};
// ...
if student_name.len() < 3 {
// ...
return (st, false);
}
// ...
(st, true)
}


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

fn add_student() -> Result<Student, &'static str> {
// ...
if student_name.len() < 3 {
// ...
return Err("Student's name too short");
}
// ...
let age = age.parse.map_err(|_| "Cannot parse student's age")?;

Ok(Student {
name: student_name,
age
})
}


Понятно, что возврат статических строк в качестве ошибок не относится к разряду привычных практик, но вполне подойдет для данного примера.

◾️Метод .map_err() позволяет преобразовать экземпляр типа, содержащийся в значении перечисления Err(e), в такой, который поддерживается функцией.

В этом случае объявленным типом является &'static str (эквивалент Rust для идиомы типа const char* в С), чем объясняется совпадение текстов в кавычках. Оператор ?  — одна из лучших функциональностей Rust. Он проверяет стоящий перед ним экземпляр Result<>. Если значение равно Err(e), возвращает результат, в противном случае продолжает работу. В старом коде встречался макрос try!().

В итоге проверка ожидаемого вывода функции выглядит так:

let student = if let Ok(student) = add_student() {
student
} else {
continue;
}

student_db.push(student.clone());


Это неидеальное условие, поскольку оно фактически исключает любую ошибку. Действуя таким образом, мы исходим из предположения допустимости такого подхода, но предусматриваем обработку перечисления Err(e) на индивидуальной основе.

📌 Ошибка новичков: бесконечный цикл

Читать

@rust_code

Читать полностью…

Rust

Rust code linter

https://github.com/estebank/redpen

@rust_code

Читать полностью…
Подписаться на канал