
Rust программисты в схеме устройства интернета 🧢
@xorust
Привет! 🦀У нас тут всё проржавело, но думаю ты найдешь кое-что интересное для себя ✌️use {Готовый код, советы, лайфхаки, годные библиотеки, уроки и многое другое};let 😎 Наша предложка - @hhsharebot;let 🤟 Автор - Абрахам (@priler);

Rust программисты в схеме устройства интернета 🧢

Разбираем ситуацию с Cloudflare и почему всего одна строчка Rust кода буквально положила почти весь интернет? 🚬▶️ https://www.youtube.com/watch?v=_aJqpzwslA4

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

Очередной плюсик в корзинку 🦀 RustЭто вам не JS у которого node_modules весит по 100 гб

Ну тут даже я в шоке 🚬

parking_lot — это альтернативная имплементация Mutex, RwLock, Condvar и Once.Они тут меньше, быстрее и лучше.По уверениям разработчиков, тесты на x86_64 Linux показали, что Mutex в 1.5x раз быстрее, чем стандартный std::sync::Mutex.Судя кол-ву. скачиваний, этот крейт уже давно стал стандартом вместо STD раста 🦀UPD: А еще в нем есть такая штука как ReentrantMutex, позволяющая одному и тому же потоку множество раз получать замок, избегая взаимного дедлока.#крейты

Вчера пытался завести модель по определению спама из нашего 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 :]

📦 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— Чуть оптимизировал кодЖдите в ближайшее время посты про интересные крейты 🧢

godot-rust — это проект позволяющий разрабатывать игры на Godot, а код писать на Rust.Причем один из разработчиков, — программист в команде Godot.Хотя сам язык Rust официально не поддерживается Godot.Godot-Rust в разработке с 2023 года.У него 4 тыс. звёзд на ГХ.А крайняя версия 0.4 вышла буквально в прошлом месяце.Может это шанс для 🦀 Rust получить первый адекватный игровой движок.#крейты

Кстати, написал для своей библиотеки парочку бенчмарков на Criterion.А потом схожие на Python.Оказалось, что 📦 rust-censure работает примерно на 900% быстрее оригинала.Конечно это за счет языка, компиляции и мощнейшей библиотеке regex.Сложность правда O(m * n) на выполнение и O(1) на память, но во-первых m статично, а n чаще всего это мелкие сообщения в чатах.Так что не критично.В будущем добавлю сюда алгоритм Ахо-Корасик для еще более быстрой обработки.В расте есть даже готовая либа :3