Выпуск Tarantool Rust SDK 5.0

Александр Толстой

Команда разработчиков Picodata сообщает о выпуске новой версии Tarantool Rust SDK 5.0. Данное программное обеспечение используется для разработки модулей для Tarantool на языке Rust.

В этой версии мы переработали некоторые подсистемы библиотеки, добавив удобства и гибкости, однако при этом пришлось чуть-чуть сломать совместимость. Приносим извинения за неудобство!

Наиболее заметные новые функции:

  • Тип TarantoolError переименован в BoxError (старое имя доступно как type alias), и ему добавлены среди прочих новые методы file, line, errno, а также конструкторы new (который сохраняет имя файла и номер строки вызова), и with_location. Этот тип теперь можно получить в ответ на RPC-вызов, сделанный через network::client или net_box-модуль, что позволяет получить структурированную диагностику ошибок от реплик.
  • Хранимые процедуры, описанные при помощи макро-атрибута #tarantool::proc теперь поддерживают возврат дополнительной диагностики об ошибках (локация в исходном коде и код ошибки) при помощи нового трейта IntoBoxError. Это изменение может сломать часть существующего кода, т.к. трейт теперь должен быть реализован для всех типов ошибок, возвращаемых из хранимых процедур, однако этот трейт предоставляет реализации по умолчанию для всех методов, что должно облегчить процесс перехода.
  • В модуль log добавлены функции current_level и set_current_level для работы с встроенным логгером Тарантула. Также, для работы с ним добавлено семейство макросов say_info, say_verbose, и т.д., которые могут пригодиться в окружении без собственной системы логирования.
  • Типу Instant добавлены конструкторы на замену старым. Они должны быть более понятны в использовании: now_fiber нужно использовать для вычисления таймаутов, now_accurate нужно использовать когда важна точность, например, при профилировании производительности кода.
  • Добавлены вспомогательные объекты для обеспечения безопасности в многофайберном коде: NoYieldsGuard и NoYieldsRefCell.

Также мы добавили много других функций и исправили много багов, о чём как обычно можно прочитать в CHANGELOG.md.

Tarantool — это СУБД и платформа вычислений, работающая резидентно, в оперативной памяти. Это быстрая, надёжная и хорошо масштабируемая основа для построения распределённых систем с нужной клиенту бизнес-логикой. Программное обеспечение Picodata использует доработанную и улучшенную версию Tarantool для создания кластеров хранения данных и обеспечения запуска приложений на языке Rust для работы с данными.