Библиотеки
Крейты и библиотеки, полезные в разработке: от асинхронного ввода-вывода до криптографии.
Вышла версия tokio 1.53.2 — асинхронной среды выполнения для Rust. Это патч-релиз: исправлены переполнение целого в буферизованном поиске по файлу, неверная передача значения в канале mpsc и проверка максимального числа разрешений в семафоре.
Крейтом недели в TWiR #672 выбран karatepe — библиотека и язык для локализации приложений со статической типизацией. Дата — публикация первой версии на crates.io.
Демонстрации Ratatui — библиотеки терминальных интерфейсов на Rust — собраны и проверены на Redox. В том же месяце в репозитории Redox появился рецепт Ratatui.
Проект iroh выпустил версию 1.0 после четырёх лет разработки. Библиотека позволяет устанавливать сетевые соединения между приложениями на разных хостах с подключением по криптографическим ключам вместо IP-адресов.
Сетевой стек Redox переведён на smoltcp 0.13.1 вместо 0.12.0. smoltcp — сетевой стек на Rust, написанный для встраиваемых систем; на нём работают сетевые карты Redox.
Исправлена сборка клиентской библиотеки orbclient без стандартной библиотеки Rust. Теперь её можно использовать в минимальных и встраиваемых конфигурациях.
Выделен отдельный крейт scheme-utils с типами готовности и блокировки, общим реестром дескрипторов и вызывающим объектом. Он снимает с автора схемы ручную возню с внутренней изменяемостью и блокировками.
Внутри композитора COSMIC впервые отрисовано продвинутое содержимое окна — демонстрация libcosmic. До этого композитор умел выводить только примитивы.
Вышел выпуск встраиваемой в приложения СУБД Turso 0.5, написанной на языке Rust и совместимой с SQLite на уровне диалекта SQL, формата файлов базы данных и программного интерфейса C.
Опубликован разбор StrongBox — библиотеки, которая убирает из кода работы с криптографией рутину с выбором алгоритмов и управлением ключами, оставляя только шифрование и расшифрование данных.
Опубликован разбор того, как устроить расширяемость в приложении на Rust, и сравнение четырёх подходов: динамические библиотеки, встроенный скриптовый язык, WebAssembly и движок правил.
Вышла версия 0.4.0 Danube Messaging — системы обмена сообщениями, ориентированной на высокую пропускную способность и независимость обмена сообщениями от наличия подписчиков.
Команда iroh рассказала о том, как добилась читаемых трассировок стека в библиотеках: путь ошибки теперь переживает границу крейта и остаётся осмысленным.
Опубликован разбор тонкой абстракции, которая скрывает детали обмена сообщениями между сервисами и оставляет прикладному коду только описание того, что нужно сделать.
Команда SeaQuery переработала поддержку сырых SQL-запросов. Теперь их писать и подставлять параметры в них проще, а результат лучше читается при отладке.