Tarantool is an in-memory database and application server.
Key features of the application server:
- 100% compatible drop-in replacement for Lua 5.1, based on LuaJIT 2.0. Simply use #!/usr/bin/tarantool instead of #!/usr/bin/lua in your script.
- full support for Lua modules and a rich set of own modules, including cooperative multitasking, non-blocking I/O, access to external databases, etc
Key features of the database:
- MsgPack data format and MsgPack based client-server protocol
- two data engines: 100% in-memory with optional persistence and a 2-level disk-based B-tree, to use with large data sets
- multiple index types: HASH, TREE, BITSET
- asynchronous master-master replication
- authentication and access control
- the database is just a C extension to the app server and can be turned off
Supported platforms are Linux/x86 and FreeBSD/x86, Mac OS X.
Tarantool is ideal for data-enriched components of scalable Web architecture: queue servers, caches, stateful Web applications.
Tarantool is written in C and C++. To build, you will need GCC or Apple CLang compiler.
CMake is used for configuration management. 3 standard CMake build types are supported:
- Debug -- used by project maintainers
- RelWithDebInfo -- the most common release configuration, also provides debugging capabilities
- Release -- use only if the highest performance is required
The build depends on the following external libraries:
- Readline development files (libreadline-dev/readline-devel package).
- OpenSSL development files (libssl-dev/openssl-devel package).
- libyaml (libyaml-dev/libyaml-devel package).
- liblz4 (liblz4-dev/lz4-devel package).
- GNU bfd which is the part of GNU binutils (binutils-dev/binutils-devel package).
Please follow these steps to compile Tarantool:
# If compiling from git
tarantool $ git submodule update --init --recursive
tarantool $ cmake .
tarantool $ make
To use a different release type, say, RelWithDebInfo, use:
tarantool $ cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo
Additional build options can be set similarly:
tarantool $ cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_DOC=true # builds the docs
'make' creates 'tarantool' executable in directory src/.
There is 'make install' goal. One can also run Tarantool executable without installation.
To start the server, try:
tarantool $ ./src/tarantool
This will start Tarantool in interactive mode.
To run Tarantool regression tests (test/test-run.py), a few additional Python modules are necessary:
- PyYAML==3.10
- argparse==1.1
- msgpack-python==0.4.6
- gevent==1.1b5
- six>=1.8.0
Or run:
pip install -r test-run/requirements.txt
Simply type 'make test' to fire off the test coverage.
Please report bugs at https://github.com/tarantool/tarantool/issues We also warmly welcome your feedback in the discussion mailing list, [email protected].
Thank you for your interest in Tarantool!