Skip to content
Tarantool application framework
Lua JavaScript Python CSS CMake Shell HTML
Branch: master
Clone or download
Latest commit c83b782 Oct 18, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cartridge Fix attempt to index nil value (#278) Oct 18, 2019
cmake Simplify finding ldoc binary for building api doc (#188) Sep 17, 2019
doc Allow specifying vshard_group in test helpers (#271) Oct 15, 2019
test Fix attempt to index nil value (#278) Oct 18, 2019
webui Cypress UI tests (#217) Oct 18, 2019
.gitattributes Add gitignore, gitattributes Sep 7, 2018
.gitignore Fix remote_control test to be cross-platform (#213) Sep 20, 2019
.gitlab-ci.yml Cypress UI tests (#217) Oct 18, 2019
.graphqlconfig.yaml Migrate admin url from `graphql` to `admin/api` Apr 22, 2019
.luacheckrc Rename the project Aug 25, 2019
CHANGELOG.md Allow specifying vshard_group in test helpers (#271) Oct 15, 2019
CMakeLists.txt Simplify finding ldoc binary for building api doc (#188) Sep 17, 2019
README.md Remove pipeline status badge from readme (#268) Oct 15, 2019
cartridge-scm-1.rockspec Fix frontend warnings (#166) Aug 30, 2019
cartridge.lua Make rpc_get_candidates API public (#239) Oct 2, 2019
check-flow-graphql.sh graphql typing Jun 3, 2019
config.ld
fetch-schema.sh Split init scripts for integration tests Jul 23, 2019
pytest.ini Cleanup tests directories structure May 17, 2019
release.sh Replace Makefile with CMake May 30, 2019
run-test.sh Update luatest to 0.2.2 (#233) Sep 30, 2019
start.sh Implement parsing options from args and env vars Aug 19, 2019
stop.sh Move start/stop scripts outside makefile Dec 26, 2018
taptest.lua Fix gitlab syntax highlighting Aug 19, 2019

README.md

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
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 0.2.2

Then run tests:

pytest -v
./run-test.sh
You can’t perform that action at this time.