=head1 NAME

tarantool - a Lua application server and a database management system

=head1 SYNOPSIS

    tarantool [OPTIONS] --name NAME --config CONFIG
    tarantool [OPTIONS] [SCRIPT [ARGS]]

=head1 DESCRIPTION

Tarantool is an in-memory computing platform consisting of a database and an
application server.

Key features of the application server:

=over

=item *

Heavily optimized Lua interpreter with an incredibly fast tracing JIT compiler
based on LuaJIT 2.1.

=item *

Cooperative multitasking, non-blocking IO.

=item *

Persistent queues.

=item *

Sharding.

=item *

Cluster and application management framework.

=item *

Access to external databases such as MySQL and PostgreSQL.

=item *

A rich set of built-in and standalone modules.

=back

Key features of the database:

=over

=item *

MessagePack data format and MessagePack based client-server protocol.

=item *

Two data engines: a 100% in-memory with complete WAL-based persistence, and an
own implementation of LSM-tree for the large data sets.

=item *

Multiple index types: HASH, TREE, RTREE, BITSET.

=item *

Document oriented JSON path indexes.

=item *

Asynchronous master-master replication.

=item *

Synchronous quorum-based replication.

=item *

RAFT-based automatic leader election for the single-leader configuration.

=item *

Authentication and access control.

=item *

ANSI SQL, including views, joins, referential and check constraints.

=item *

Connectors for many programming languages.

=item *

The database is a C extension of the application server and can be turned off.

=back

=head1 OPTIONS

All the options are separated into two groups: action options and modifier
options.

At least one action option should be specified.

All the modifier options are optional.

=head2 ACTION OPTIONS

=over

=item -h, --help

Print this help message.

=item -v, -V, --version

Print version and build information.

=item --help-env-list

Print environment variables list.

=item -n <...> [-c <...>], --name <...> [--config <...>]

Start an instance.

The path to the configuration file can be omitted if a configuration is stored
in etcd and C<TT_CONFIG_ETCD_*> environment variables are set.

=item <first positional argument> [<..more args..>]

Run a Lua script file. All the arguments after the script name are stored in
the `arg` global value.

The file may be pointed as `-` to read the script from stdin.

=item -e <..code..>

Run a Lua code.

It can be used on its own (as an action option) or together with another action
option (as a modifier).

=item -i

Run the interactive REPL.

=item --failover

Run a failover coordinator service.

It is available in Tarantool Enterprise Edition.

=back

=head2 MODIFIER OPTIONS

=over

=item --force-recovery

Enable force-recovery mode at database loading.

=item -l <module>

C<require> Lua module <module> and set it the same named global variable.

=item -j <cmd>

Perform LuaJIT control command <cmd>.

=item -b <...>

Save or list bytecode.

=item -d

Activate debugging session for a given script.

=item --

End-of-options marker. All the arguments after the marker are interpreted as
non-option ones.

=back

=head1 SEE ALSO

Tarantool documentation at https://tarantool.io

=head1 COPYRIGHT

Copyright (C) 2010-2023 Tarantool AUTHORS: please see AUTHORS file.

=cut
