Tarantool Cartridge allows you to easily develop Tarantool-based applications and run them on one or more Tarantool instances organized into a cluster.
As a software development kit (SDK), Tarantool Cartridge provides you with utilities and templates to help:
- easily set up a development environment for your applications;
- plug the necessary Lua modules;
- pack the applications in an environment-independent way: together with module binaries and Tarantool executables.
As a cluster management tool, Tarantool Cartridge provides your cluster-aware applications with the following key benefits:
- horizontal scalability and load balancing via built-in automatic sharding;
- asynchronous replication;
- automatic failover;
- centralized cluster control via GUI or API;
- automatic configuration synchronization;
- instance functionality segregation.
A Tarantool Cartridge cluster can segregate functionality between instances via built-in and custom (user-defined) cluster roles. You can toggle instances on and off on the fly during cluster operation. This allows you to put different types of workloads (e.g., compute- and transaction-intensive ones) on different physical servers with dedicated hardware.
you@yourmachine $ tarantoolctl rocks install cartridge
This will install cartridge
to ~/.rocks
.
This repository contains the framework itself.
To build a Tarantool cluster app, you'll also need the cartridge-cli utility.
See a step-by-step
getting started guide
in the cartridge-cli
repository.
Prerequisites:
tarantool
,tarantool-dev
(instructions);git
,gcc
,cmake
.
To build and test cartridge
locally, you'll also need:
nodejs
>= 8 (instructions);npm
>= 6;python
,pip
.
To build the front end, say:
tarantoolctl rocks make
To build the API documentation, say:
tarantoolctl rocks install ldoc --server=http://rocks.moonscript.org
export PATH=$PWD/.rocks/bin:$PATH
tarantoolctl rocks make BUILD_DOC=YES
First, install testing dependencies:
pip install -r test/integration/requirements.txt
tarantoolctl rocks install luacheck
tarantoolctl rocks install luacov
tarantoolctl rocks install luacov-console
tarantoolctl rocks install luatest
Then run tests:
pytest -v
./run-test.sh