Tarantool Rust SDK 2.0 is out!

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

Picodata development team is pleased to announce the availability of the new Tarantool Rust SDK 2.0 version.

Tarantool Rust SDK is an important auxiliary software used to develop third-party Tarantool modules in the Rust programming language. We develop and maintain the API and optimize its usage in certain scenarios.

The new release is a major upgrade that breaks compatibility with older versions, particularly in the following regards:

  • transaction::start_transaction has a more flexible error handling, and is renamed to transaction::transaction
  • fiber::clock now returns a new tarantool::time::Instant type, which completely replaces std::time::Instant. Operations on it round the value by default, rather than causing panic.
  • The tlua::LuaRead trait methods now return a WrongType error, which contains information about expected and received value types.
  • Error::Decode now contains information about the expected data type and the received msgpack value content.

New features in this release:

  • The #[tarantool::test] macro attribute and the test::test_cases function (available with the –features=test option), which can be used to write a test framework, for example as done in Tarantool-test.
  • The proc::all_procs function, which returns an array of stored procedure descriptions,
    specified using #tarantool::proc. This can be used to automate the declaration of stored procedures.
  • tarantool::network::client, an alternative async implementation of the IPROTO client based on our experimental async runtime.
  • fiber::defer will now work more efficiently on newer versions of Tarantool (starting with 2.11).

See the full list of changes in CHANGELOG.md.

Tarantool is a DBMS and computing platform that runs resident in RAM. This is a fast, reliable and highly scalable basis for building distributed systems with the business logic that the client needs. The Picodata software uses a revised and improved version of Tarantool to create storage clusters and run data processing applications written in Rust.