kemel91/laravel-tarantool

A Tarantool based Eloquent ORM and Query builder for Laravel

Maintainers

Package info

github.com/Kemel91/laravel-tarantool

pkg:composer/kemel91/laravel-tarantool

Statistics

Installs: 16

Dependents: 0

Suggesters: 0

Stars: 0

2.0.16 2026-03-23 20:49 UTC

This package is auto-updated.

Last update: 2026-03-23 20:52:19 UTC


README

This package adds functionalities to the Eloquent model and Query builder for Tarantool, using the original Laravel API. This library extends the original Laravel classes, so it uses exactly the same methods.

Installation

Laravel Version Compatibility

Laravel Package
11.x 2.x
12.x 2.x
13.x 2.x

Via Composer

composer require kemel91/laravel-tarantool

Configuration

You can use Tarantool either as the main database, either as a side database. To do so, add a new tarantool connection to config/database.php:

'tarantool' => [
    'driver'   => 'tarantool',
    'host'     => env('DB_HOST', '127.0.0.1'),
    'port'     => env('DB_PORT', 3301),
    'database' => env('DB_DATABASE'),
    'username' => env('DB_USERNAME'),
    'password' => env('DB_PASSWORD'),
    'type'     => env('DB_CONNECTION_TYPE', 'tcp'),
    'sql_seq_scan' => env('DB_TT_SQL_SEQ_SCAN', true),
    'options'  => [
        'connect_timeout' => 5,
        'max_retries' => 3
    ]
],

The package also accepts driver_options.connection_type for backward compatibility, but type is the preferred option.

On Tarantool 3.x, SQL sequential scans are disabled by default. To keep Laravel's migration repository and other framework queries working as expected, the package enables sql_seq_scan for each connection by default. You can disable this behavior with 'sql_seq_scan' => false if you want strict Tarantool scan checks.

Running tests with Docker Compose

The repository now includes a Docker-based test environment, so PHP and Tarantool do not need to be installed locally.

Start Tarantool:

docker compose up -d tarantool

Use a specific Tarantool image if needed:

TARANTOOL_IMAGE=tarantool/tarantool:2 docker compose up -d tarantool

Run the full Laravel compatibility matrix:

docker compose run --rm --user "$(id -u):$(id -g)" php sh bin/test-matrix

Run tests for a single Laravel major version:

docker compose run --rm --user "$(id -u):$(id -g)" php sh bin/test-laravel 12

Set tarantool as main database

'default' => env('DB_CONNECTION', 'tarantool'),

You can also configure connection with dsn string:

'tarantool' => [
    'driver'   => 'tarantool',
    'dsn' => env('DB_DSN'),
    'database' => env('DB_DATABASE'),
],