Команда разработчиков 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 для работы с данными.