Tarantool is an open-source software solution combining a Lua application server and a database management system. The source code is open to all and distributed for free under the BSD license.


The creator of Tarantool - as well as its main user - is Mail.Ru


Key Spaces
Spaces are collections of objects. You can think of spaces as individual tables. This is convenient because one collection usually contains entities of the same type. Each space in Tarantool can have its own set of indexes

Numeric keys
Along with string keys, Tarantool supports integer keys (32 and 64 bits).

Secondary indexes
Most key-value repositories are limited to primary key access.

Secondary indexes may not be unique
This means that querying a non-unique field may return multiple values

Composite indexes
Multiple tuple fields can be included in one secondary index. This is a full analogue of composite indexes in "traditional" (SQL) databases. Composite indexes allow you to make queries by incomplete match (wildcard). When only the first part of the index is known, Tarantool will return all matching values

Value range selections
Unlike most key-value stores, in Tarantool it is possible to fetch ranges of values (only for integer keys and only when using an index of TREE type)

Stored functions in Lua
In Tarantool, you can write stored functions in Lua. Lua is a very simple language that supports JIT compilation.

Fon processes inside the database
It is possible to make not only processing of individual queries, but also to implement background handlers (in cooperative multitasking mode) in Lua

Simple SQL-client
Worth using primarily for experimentation and introspection during development. Simple SQL queries like SELECT * FROM t0 WHERE k0 = 42 are supported.