Skip to content

tarantool/tarantool-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

28310fc · Apr 10, 2025
Apr 10, 2025
Apr 10, 2025
Apr 17, 2023
Apr 17, 2023
Sep 23, 2024
Sep 23, 2024
May 24, 2024
Mar 30, 2023
Jan 12, 2023
Feb 18, 2021
Sep 23, 2024
Apr 10, 2025
Feb 28, 2023
Sep 18, 2024
Oct 11, 2022
Feb 18, 2022
Oct 14, 2022
Jul 18, 2023
Mar 30, 2023
Nov 22, 2011
Apr 10, 2025
Sep 18, 2024
Sep 18, 2024

Repository files navigation

Python driver for Tarantool

https://github.com/tarantool/tarantool-python/actions/workflows/testing.yml/badge.svg?branch=master https://github.com/tarantool/tarantool-python/actions/workflows/packing.yml/badge.svg?branch=master

This package is a pure-python client library for Tarantool.

Documentation | Downloads | PyPI | GitHub | Issue tracker

Download and install

With pip (recommended)

The recommended way to install the tarantool package is using pip.

$ pip3 install tarantool

With dnf

You can install python3-tarantool RPM package if you use Fedora (34, 35, 36).

Add the repository

$ curl -L https://tarantool.io/OtKysgx/release/2/installer.sh | bash

and then install the package

$ dnf install -y python3-tarantool

With apt

You can install python3-tarantool deb package if you use Debian (10, 11) or Ubuntu (20.04, 22.04).

Add the repository

$ curl -L https://tarantool.io/OtKysgx/release/2/installer.sh | bash

and then install the package

$ apt install -y python3-tarantool

ZIP archive

You can also download zip archive, unpack it and run:

$ make install

Development version

You can also install the development version of the package using pip.

$ pip3 install git+https://github.com/tarantool/tarantool-python.git@master

What is Tarantool?

Tarantool is an in-memory computing platform originally designed by VK and released under the terms of BSD license.

Features

  • ANSI SQL, including views, joins, referential and check constraints
  • Lua packages for non-blocking I/O, fibers, and HTTP
  • MessagePack data format and MessagePack-based client-server protocol
  • Two data engines:
    • memtx – in-memory storage engine with optional persistence
    • vinyl – on-disk storage engine to use with larger data sets
  • Secondary key and index iterator support (can be non-unique and composite)
  • Multiple index types: HASH, BITSET, TREE, RTREE
  • Asynchronous master-master replication
  • Authentication and access control

See More

NOTE

This driver is synchronous, so connection mustn't be shared between threads/processes.

If you're looking for an asynchronous Python driver based on asyncio, consider using asynctnt . See also the feature comparison table.

Run tests

On Linux:

$ make test

On Windows:

  • Setup a Linux machine with Tarantool installed. This machine will be referred to as remote in this instruction.
  • (On remote) Copy test/suites/lib/tarantool_python_ci.lua to /etc/tarantool/instances.available.
  • (On remote) Run tarantoolctl start tarantool_python_ci.
  • Set the following environment variables: * REMOTE_TARANTOOL_HOST=..., * REMOTE_TARANTOOL_CONSOLE_PORT=3302.
  • Run make test.

Build docs

To build documentation, first you must install its build requirements:

$ pip3 install -r docs/requirements.txt

Then run

$ make docs

You may host local documentation server with

$ python3 -m http.server --directory build/sphinx/html

Open localhost:8000 in your browser to read the docs.

License

BSD-2-Clause. See the LICENSE file.