Skip to content

shevchenkoav/cartridge

 
 

Repository files navigation

pipeline status

Tarantool Cartridge — a framework for distributed applications development

Table of contents

About Tarantool Cartridge

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.

Installation

you@yourmachine $ tarantoolctl rocks install cartridge

This will install cartridge to ~/.rocks.

Usage

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.

Contribution

Building from source

Prerequisites:

To build and test cartridge locally, you'll also need:

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

Running tests

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

About

Tarantool application framework

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Lua 45.9%
  • JavaScript 43.4%
  • Python 8.7%
  • CSS 1.0%
  • CMake 0.6%
  • Shell 0.2%
  • HTML 0.2%