Rust BY
70 subscribers
87 photos
6 videos
3 files
1.65K links
Беларуское комьюнити растоманов (Rust Lang)
есть чат @rust_by_chat
Download Telegram
Половина одобренного бенчмарками ИИ-кода не прошла ручного код-ревью
https://devby.io/news/polovina-odobrennogo-benchmarkami-ii-koda-ne-proshla-ruchnogo-kod-revu
😁2
Forwarded from Блог*
#prog #rust #article

symbolic derivatives and the rust rewrite of RE#

Растовая версия очень быстрого движка для регулярных выражений, который поддерживает, помимо прочего, коньюкцию (пересечение результатов подвыражений), отрицание и lookahead и при этом работает за линейное от входных данных время. По производительности на выражениях с большим количеством состояний обгоняет regex, особенно для поиска без учёта регистра.

Теория, поддерживающая этот движок — это развитие идей Brzozowski, но вместо того, чтобы считать производную от регулярного выражения для разных символов и потом объединять их по классам эквивалентности, новый подход считает т. н. символическую производную — производную для всех возможных входных символов сразу.

Из-за того, что данный подход поддерживает коньюкцию, движок может работать на байтах и при этом поддерживать UTF-8 просто за счёт добавления правила, которое ограничивает вход до валидных UTF-8 последовательностей:

// \p{utf8} expands to:
// ([\x00-\x7F]
// | [\xC0-\xDF][\x80-\xBF]
// | [\xE0-\xEF][\x80-\xBF]{2}
// | [\xF0-\xF7][\x80-\xBF]{3})*


Пример кода:

use resharp::Regex;

// basic matching
let re = Regex::new(r"hello.*world").unwrap();
assert!(re.is_match("hello beautiful world"));

// intersection: contains both "cat" and "dog", 5-15 chars
let re = Regex::new(r"_*cat_*&_*dog_*&_{5,15}").unwrap();

// complement: does not contain "1"
let re = Regex::new(r"~(_*1_*)").unwrap();
Forwarded from opennet.ru
Выпуск браузерного движка Servo 0.1.0, который теперь доступен в форме crate-пакета

Опубликован выпуск браузерного движка Servo 0.1.0 и развиваемого вместе с ним демонстрационного браузера ServoShell, написанных на языке Rust. Готовые сборки сформированы для  Linux, Android, macOS и Windows.  Помимо отдельных сборок Servo теперь поставляется и в форме crate-пакета, позволяющего использовать движок в форме библиотеки.

Подробнее:
https://opennet.ru/65197/
https://opennet.me/65197/
Forwarded from Grzegorz Brzęczyszczykiewicz
https://github.github.com/gh-stack/

Джва года ждал
Forwarded from opennet.ru
Выпуск Rust 1.95. Добавление Rust в дисплейный сервер Mir. Анализатор трафика ayaFlow на Rust

Опубликован релиз языка программирования  Rust 1.95, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).

Подробнее:
https://opennet.ru/65230/
https://opennet.me/65230/