Выпуск Tarantool Rust SDK 4.0

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

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

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

  • Методы fiber::Builder::{start_non_joinable, defer_non_joinable} для создание файберов, окончания работы которых не нужно дожидаться. Эти функции возвращают id нового файбера, по которому с ним дальше можно работать при помощи новых функций fiber::{cancel, wakeup, exists, csw_of, name_of, set_name_of, name_raw}. Id текущего файбера можно получить при помощи новой функции fiber::id. Старая версия файберного API Fiber при этом помечена как deprecated, так как её использование, помимо прочего, может привести к undefined behaviour или падениям.
  • Методы для ожидания конкретного момента в будущем Cond::wait_deadline и r#async::timeout::{deadline, IntoTimeout::deadline}.
  • Метод Proc::is_public, позволяющий определить, помечена ли модификатором pub хранимая процедура, определённая при помощи #[tarantool::proc]. Этот показатель также можно изменить при помощи нового атрибута-параметра (public = [true|false]).
  • Методы KeyDef::{extract_key, extract_key_raw} для извлечения ключей из кортежей (tuple). Эти методы стоит использовать вместо старого Index::extract_key, а объект KeyDef можно получить при помощи цепочки Index::meta -> index::Metadata::to_key_def. Также добавлен метод KeyDef::validate_tuple для валидации кортежей.
  • Функции transaction::{is_in_transaction, begin, commit, rollback} для низкоуровневой работы с транзакциям, для ситуаций, когда старая transaction::transaction не подходит.

Новая версия Tarantool Rust SDK 4.0 вносит несколько небольших изменений, несовместимых с прошлыми версиями, которые, надеемся, не затронут большую часть пользователей. Просим прощения за доставленные неудобства 🫣! В частности:

  • удален метод TcpStream::close_token.
  • метод Index::extract_key помечен как unsafe.
  • добавлены новые варианты в enum Error и удалены реализации трейтов из сторонних библиотек clap и num_traits.

Про остальные изменения и исправления ошибок можно почитать в CHANGELOG.md

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