Rust
Open in Telegram
2 230
Subscribers
+324 hours
+37 days
+230 days
Posts Archive
2 230
Rust for Network Programming and Automation, 2nd Edition: Work around designing networks, TCP/IP protocol, packet analysis and performance monitoring using Rust 1.68
Автор: Gilbert Stew (2024)
Разработанная с учетом потребностей тех, кто интересуется сетевым программированием и автоматизацией, эта обновленная книга исследует реалистичность сетевого программирования в рамках надежной экосистемы Rust. Построенная на базе Rust 1.68, эта книга шаг за шагом проведет вас через основы сетевых протоколов, анализа пакетов и сетевого администрирования с помощью актуального и подробного материала.
👉 @rust_lib
2 230
Huey
Генерирует гифку, которая циклически перебирает все оттенки!
https://github.com/ahhhh6980/huey
👉 @rust_lib
2 230
Regex engine internals as a library [full]
Дисклеймер
Это полный перевод большой и сложной статьи по внутреннему устройству крейта regex свежей версии. Перевод большей частью выполнялся для себя, чтобы поднабить скилл в английском. По возможности постарался сохранить авторский стиль.
Если всегда было интересно, как оно там под капотом устроено, а в книге Фриддла или в книге дракона вы не нашли подробностей, то добро пожаловать - будет интересно и очень сложно.
Для понимания потребуются:
🟢Знания основ теории автоматов (знать и понимать отличия ДКА от НКА)
🟢Иметь базовое представление о том, что такое регулярные выражения
🟢Начальные знания по языку Rust
🟢Общие представления отличия различных структур данных друг от друга
https://habr.com/ru/articles/755940/
original https://blog.burntsushi.net/regex-internals/
👉 @rust_lib
2 230
Просто спарсь что угодно с помощью языка Rust (ну… или просто скачай файл)
Известно, что Rust — типобезопасный язык программирования, код которого проверяется компилятором ещё до сборки. С одной стороны это хорошо: меньше вероятности внезапного сбоя в самый неподходящий момент. С другой стороны — код, выполняющий одну функцию, в итоге может стать очень сложным и иногда нечитаемым.
В пример привожу функцию, которая парсит названия валют с сайта floatrates и выводит их (пожалуйста, напишите в комментариях, за сколько минут вы поняли эту строку):
// main.rs
use anyhow::anyhow;
use reqwest::blocking::get;
use scraper::{Html, Selector};
fn main() -> anyhow::Result<()> {
let body = get("http://www.floatrates.com/json-feeds.html")?.text()?;
let document = Html::parse_document(&body);
let selector = Selector::parse("div.bk-json-feeds>div.body>ul>li>a")
.map_err(|err| anyhow!("{err}"))?;
for element in document.select(&selector) {
println!("{}", element.inner_html());
}
Ok(())
}
В этой статье я хочу рассказать о своей новой библиотеке, значительно упрощающей парсинг на Rust. Приятного чтения!
https://habr.com/ru/articles/755728/
👉 @rust_lib2 230
ytdlp-gui
Это графический интерфейс для yt-dlp, написанный на Rust
Его можно легко установить в GNU/Linux и Windows системах
https://github.com/BKSalman/ytdlp-gui
👉 @rust_lib
2 230
Полезные фичи в Rust
Rust — это мощный и безопасный язык, его часто выбирают благодаря способности предотвращать множество распространённых ошибок на стадии компиляции. Сегодня я хочу рассказать о некоторых фичах, которые, возможно, уже знакомы вам, но точно заслуживают внимания тех, кто с ними еще не знаком.
https://habr.com/ru/companies/otus/articles/833498/
👉 @rust_lib
2 230
Понимание и реализация смарт-указателя Arc и мьютекса на Rust
Rust — язык системного программирования с акцентом на безопасности, многопоточности, производительности. В этом руководстве рассмотрим два примитива многопоточности Rust: Arc и Mutex.
При написании многопоточного Rust рано или поздно встречаются типы Arc и Mutex. Mutex применяется во многих языках, а вот Arc вряд ли найдется где-то еще, кроме Rust. Нельзя полностью понять эти концепции, не связав их с моделью владения Rust. Эта статья — мой подход к пониманию Arc и Mutex в Rust.
https://towardsdev.com/understanding-and-implementing-rusts-arc-and-mutex-b54e8e3c1821
👉 @rust_lib
2 230
Рост производительности машинного обучения с Rust
В этой статье я хочу поделиться своим опытом создания небольшой платформы для машинного обучения (ML) с нуля, используя язык программирования Rust.
Для моего эксперимента у меня были следующие цели:
1 - Я хотел выяснить, приведет ли переход с Python + PyTorch на Rust + LibTorch (библиотеку C++, используемую в PyTorch) к ощутимому увеличению скорости, особенно в процессе обучения модели. Как мы знаем, модели машинного обучения становятся все больше и требуют все больше вычислительных ресурсов для обучения, что иногда недоступно для обычного человека. Один из способов уменьшить требования к аппаратному обеспечению — найти способ сделать алгоритмы более вычислительно эффективными. Зная, что в PyTorch Python является лишь верхним слоем над LibTorch, мой главный вопрос заключался в том, стоит ли заменять этот верхний слой Python на Rust. План заключался в том, чтобы использовать библиотеку Tch-rs Rust для работы с тензорами и функцией автоградента из DLL LibTorch, которая будет выступать в качестве "калькулятора градиентов", а затем разработать остальную часть с нуля на Rust.
2 - Я хотел, чтобы код был достаточно простым для четкого понимания всех выполняемых операций с линейной алгеброй и позволял легко расширять его при необходимости.
3 - Насколько это возможно, моя платформа должна позволять мне определять модели машинного обучения по структуре, аналогичной стандартной Python/PyTorch.
https://betterprogramming.pub/boosting-machine-learning-performance-with-rust-aab1f3ae1424
👉 @rust_lib
2 230
The Power Of RUST: введение и глубокое погружение в продвинутые концепции: Ownership, References и Borrowing.
Rust используется многими крупными компаниями, такими как Mozilla, Microsoft и Dropbox, он применяется во многих случаях, для создания веб-серверов, интерфейсов командной строки, нативных настольных приложений, веб-приложений с помощью WebAssemblly, а также для операционных систем.
Безопасный и многопоточный язык - это уже здорово, но максимальная производительность будет еще выше, и Rust как раз для этого, это системный язык программирования с компилятором, поэтому он не интерпретируется, как javascript, его компилятор - это ключ к производительным программам и безопасной памяти. Не только производительность, но и продуктивность Rust обусловлена наличием инструментария, такого как менеджер пакетов, тестирование и документация.
https://dev.to/this-is-learning/the-power-of-rust-introduction-and-deep-dive-in-advanced-concepts-ownership-references-and-borrowing-28dh
👉 @rust_lib
2 230
Blaze: ускорение ZK для программируемой пользователем вентильной матрицы
Чтобы сделать ускорение ППВМ, или программируемой пользователем вентильной матрицы, и графического процессора одинаково удобным для разработчиков, в Ingonyama разрабатывают решения-ускорители ППВМ для типовых примитивов ZK.
С Blaze — библиотекой Rust для ускорения ZK на основе ППВМ компании Xilinx — ускорение ППВМ становится доступным для разработчиков ZK.
https://medium.com/@ingonyama/introducing-blaze-zk-acceleration-for-fpga-6f5f7cc50e1f
👉 @rust_lib
2 230
Реализуем Type Inference на Rust — Часть #2: Простой Lambda Calculus
Если вы пишете свой язык программирования, то вы наверное слышали о type inference. В этом цикле статей, без лишней теории, мы наглядно разберем как это работает и реализуем свой на Rust.
https://habr.com/ru/articles/753180/
👉 @rust_lib
2 230
Реализуем Type inference на Rust — Часть #1: Unification
Если вы пишете свой язык программирования, то вы наверное слышали о type inference. В этом цикле статей, без лишней теории, мы наглядно разберем как это работает и реализуем свой на Rust.
https://habr.com/ru/articles/748978/
👉 @rust_lib
2 230
Криптография на Rust и немного FFI
Начнем с того, что эта статья как и большинство моих статей родилась в процессе разработки. В данном конкретном случае - разработки внешней крипто-библиотеки для генерации крипто-кошельков.
Да, определенно. Я считаю, что приставка "крипто" любому словосочетанию придает привкус гигантской яхты дрейфующей где-то в Майами.
В итоге, выбор упал на Rust потому что я уже работал с ним, и знаю, что crates.io изобилует всякими библиотеками для работы с разнообразными криптографическими функциями.
https://habr.com/ru/articles/748534/
👉 @rust_lib
2 230
Микросервисы Rust в серверном WebAssembly
Язык программирования Rust за последние несколько лет значительно распространился. Он несколько лет подряд считается самым любимым языком программирования среди разработчиков и включён в состав ядра Linux. Rust позволяет разработчикам писать корректные программы, обеспечивающие безопасность при работе с памятью, а также такие же компактные и быстрые, как на языке C. Он идеально подходит для создания инфраструктурного программного обеспечения, включая серверные приложения, от которых требуется высокая надёжность и производительность.
Однако при разработке серверных приложений Rust также представляет определенные трудности. Написанные на Rust программы компилируются в нативный машинный код, который не является портируемым и небезопасен в многопользовательских облачных средах. Нам также не хватает инструментов для управления и оркестрации нативных приложений в облаке.
https://habr.com/ru/companies/timeweb/articles/747582/
👉 @rust_lib
2 230
Halloy - IRC Client
Halloy - это IRC-клиент с открытым исходным кодом, написанный на Rust с использованием библиотеки Iced GUI. Его цель - предоставить простой и быстрый клиент для платформ Mac, Windows и Linux.
https://github.com/squidowl/halloy
👉 @rust_lib
2 230
Gabriel2 — Open Source асинхронная библиотека для модели Акторов на Rust с использованием Tokio
В целом мне очень нравится концепция Акторов в асинхронном программировании. Низкоуровневое программирование с использованием очередей сообщений и обработчиков сообщений не позволяет мыслить в терминах высокоуровневых абстракций. Акторы позволяют абстрагироваться от низкоуровневых деталей. Другими словами, Акторы посылают сообщения друг другу. А то, что Акторы на самом деле работают на очередях сообщений, нам не важно. Это скрыто 'под капотом'
Во время изучения Tokio, я решил написать свой проект для модели Акторов. Как раз низкоуровневая часть Tokio позволила это сделать. Так появилась библиотека Gabriel2.
https://habr.com/ru/articles/821267/
👉 @rust_lib
2 230
Ловим спутники без поворотного устройства
Полагаю, все любители поймать сигнал со спутников начинают с использования простых и легких направленных антенн, подключённых к портативке. Затраты минимальные, а удовлетворение от удачи услышать сигнал из космоса – максимальное. Но со временем надоедает руками держать и направлять на спутник антенну, хочется чего-то удобного. В век компьютеров логично всё автоматизировать. Об одном из возможных вариантов я хочу рассказать далее.
https://habr.com/ru/articles/820145/
👉 @rust_lib
2 230
Быстрое извлечение доминирующих цветов CLI
Это интерфейс командной строки для быстрого извлечения доминирующих цветов из локальных или удаленных изображений.
Он построен на Rust и по сути основан на реализации алгоритма Colors Thief, написанного
Евгением Рейзнером.
https://github.com/AbdoulMa/copycolors
👉 @rust_lib
2 230
Интероперабельность между С++ и Rust
Этот пост основан на презентации, с которой автор выступил на конференции EuroRust 2022 в Берлине. Доступны слайды и видеозапись.
Автор, работающий в компании Slint, участвует в создании UI-инструментария, написанного на Rust. Этот UI-инструментарий может использоваться и с другими языками и экосистемами, кроме той, для которой был написан, поэтому в Slint предусмотрены API для C++ и даже для Javascript. Естественно, эти API должны восприниматься как совершенно нативные для разработчиков, имеющих дело с этими языками. Именно поэтому ребром стоит вопрос о том, как создать нативно воспринимаемые API к коду Rust для пользователей, привыкших работать с C++.
https://habr.com/ru/companies/timeweb/articles/743540/
original https://slint.dev/blog/rust-and-cpp
👉 @rust_lib
