Rust - Советы, библиотеки, гайды – Telegram
Rust - Советы, библиотеки, гайды
2.33K subscribers
108 photos
2 videos
47 links
Привет! 🦀
У нас тут всё проржавело, но думаю ты найдешь кое-что интересное для себя ✌️

use {Готовый код, советы, лайфхаки, годные библиотеки, уроки и многое другое};

let 😎 Наша предложка - @hhsharebot;
let 🤟 Автор - Абрахам (@priler);
Download Telegram
Коротко о зарплатах Rust программистов.
1🌚36🔥6👍42
Опубликовал на crates.io свой первый крейт 🦀

📦 rust-censure — это порт библиотеки py-censure с питона на раст
Поддерживает два языка: русский и английский.
Будет полезно, например, для авто-модерации чатов.


В плане оптимизации крейт делает две вещи:
— Использует regex для обычных регулярок и fancy-regex для более тяжелых (через фолбэк)
— Компилирует и кэширует регулярки по запросу

Это пока еще можно сказать бета версия, но она уже должна нормально работать.
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍18🔥54😁2
Ладно я добавил Readme.
Так уж и быть пхпхпх 🧢
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍28🔥5😁42
Кстати, написал для своей библиотеки парочку бенчмарков на Criterion.
А потом схожие на Python.

Оказалось, что 📦 rust-censure работает примерно на 900% быстрее оригинала.
Конечно это за счет языка, компиляции и мощнейшей библиотеке regex.

Сложность правда O(m * n) на выполнение и O(1) на память, но во-первых m статично, а n чаще всего это мелкие сообщения в чатах.
Так что не критично.

В будущем добавлю сюда алгоритм Ахо-Корасик для еще более быстрой обработки.
В расте есть даже готовая либа :3
1👍27🔥71🥰1
godot-rust — это проект позволяющий разрабатывать игры на Godot, а код писать на Rust.

Причем один из разработчиков, — программист в команде Godot.
Хотя сам язык Rust официально не поддерживается Godot.

Godot-Rust в разработке с 2023 года.
У него 4 тыс. звёзд на ГХ.
А крайняя версия 0.4 вышла буквально в прошлом месяце.

Может это шанс для 🦀 Rust получить первый адекватный игровой движок.

#крейты
Please open Telegram to view this post
VIEW IN TELEGRAM
129👍9🔥4🥰1
📦 rust-censure уже 500+ скачиваний лол.
Это мой первый опыт в размещении на Crates.

Поэтому делюсь им с вами.
Вчера зарелизил версию 0.2.0, и сам не заметил как поломал SemVer (согласно ему должна была быть версия 1.0.0).
Поэтому быстренько восстановил обратную совместимость и зарелизил 0.2.1.
SemVer так разрешает, это буквально написано у них в FAQ.

Ранее я уже много раз выпускал всевозможные библиотеки: на JS, на PHP, на Python.
Но я никогда не юзал SemVer, чаще писал версии от балды.
Штош, в мире SemVer разработчиков пополнение 😎

В версии ^0.2.0 кстати:
— Я исправил реализацию трейта LangProvider
— Добавил новый конструктор для Censor
— Чуть оптимизировал код


Ждите в ближайшее время посты про интересные крейты 🧢
Please open Telegram to view this post
VIEW IN TELEGRAM
118👍10🔥1🥰1
Вчера пытался завести модель по определению спама из нашего Python бота на 🦀 Rust.

Мучался час с крейтом Candle.
В итоге свичнулся на rust_bert.

Архитектура модели — DebertaForSequenceClassification.

Кто бы мог подумать, но в коде прямо так и пишем:
use rust_bert::deberta::{DebertaConfig, DebertaForSequenceClassification};


Спрашивал у нейронки, она мне советовала сохранять модель в .ot формате.
Хрен там плавал, Rust прекрасно работает с .safetensors.

Единственное пришлось править config.json.
А именно добавить поле id2label и убрать какое-то, у которого было значение null.

Но в итоге оно не компилировалось.
А всё потому что есть два разных токенайзера: rust_tokenizers и новый HF tokenizers.

И если вы ставите второй от HF, то он конфликтует с линкером MSVC.
Точнее конфликтует метод сборки каких-то модулей libtorch, если я верно понял.
Короче говоря ставим его вот так:
tokenizers = { version = "0.22.1", default-features = false, features = ["onig"] }


Иначе код тупо не компилится.
С чем это связано я так и не понял.
Что-то там со статическими/динамически скомпилированными библиотеками, и что линковщик отказывается их совмещать.
Иш, какой придирчивый ...

Крч заработало в итоге.
Нейросеть теперь отлично работает под 🦀 Rust :]
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥22👍62🤯2😁1
parking_lot — это альтернативная имплементация Mutex, RwLock, Condvar и Once.
Они тут меньше, быстрее и лучше.

По уверениям разработчиков, тесты на x86_64 Linux показали, что Mutex в 1.5x раз быстрее, чем стандартный std::sync::Mutex.

Судя кол-ву. скачиваний, этот крейт уже давно стал стандартом вместо STD раста 🦀

UPD: А еще в нем есть такая штука как ReentrantMutex, позволяющая одному и тому же потоку множество раз получать замок, избегая взаимного дедлока.

#крейты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥52🌚2🥰1
Ну тут даже я в шоке 🚬
Please open Telegram to view this post
VIEW IN TELEGRAM
😁42🤯7🌚4🤡1
Очередной плюсик в корзинку 🦀 Rust

Это вам не JS у которого node_modules весит по 100 гб
Please open Telegram to view this post
VIEW IN TELEGRAM
30👍8🔥3🥰1🤔1
Кстати недавно весь интернет упал из-за вот этой одной строчки Rust кода.

Cloudflare переписали часть функций на Rust, и тупо заюзали в коде .unwrap().
Без каких-либо проверок, напрямую 🤲.

Как результат — код запаниковал и сервер упал.
Пам пам 🧢
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯336😁4
Разбираем ситуацию с Cloudflare и почему всего одна строчка Rust кода буквально положила почти весь интернет? 🚬

▶️ https://www.youtube.com/watch?v=_aJqpzwslA4
Please open Telegram to view this post
VIEW IN TELEGRAM
💯161🤯1
Rust программисты в схеме устройства интернета 🧢
Please open Telegram to view this post
VIEW IN TELEGRAM
💯22🔥31👍1🥰1
Новый логотип Раста после того как он положил половину интернета 😂
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰35😁146🔥3💯3