PHPackages                             beauty-framework/tarantool-support - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. beauty-framework/tarantool-support

ActiveLibrary[Database &amp; ORM](/categories/database)

beauty-framework/tarantool-support
==================================

Beauty Tarantool support

1.0.0(11mo ago)00MITPHPPHP &gt;=8.1

Since Jun 20Pushed 11mo agoCompare

[ Source](https://github.com/beauty-framework/tarantool-support)[ Packagist](https://packagist.org/packages/beauty-framework/tarantool-support)[ RSS](/packages/beauty-framework-tarantool-support/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (3)Versions (2)Used By (0)

Tarantool Support for Beauty Framework Cache
============================================

[](#tarantool-support-for-beauty-framework-cache)

Welcome to the most "unconventional" cache driver you didn't know you wanted! 🎉
Yes, we're using Tarantool — that speedy, Lua-powered in-memory database — as a cache backend.
Because why use Redis when you can have a Tarantool? Ha-ha 😜

---

Installation
------------

[](#installation)

```
composer require beauty-framework/tarantool-support
```

---

Configuration
-------------

[](#configuration)

Configure your cache driver like this:

```
return [
    'default' => 'tarantool',

    'stores' => [
        'tarantool' => [
            'driver' => 'tarantool',
            'host' => '127.0.0.1',
            'port' => 3301,
            'user' => 'guest',
            'password' => null,
            'space' => 'cache',
        ],
    ],
];
```

And in `\App\Container\Cache::configure` add Tarantool Driver:

```
        $factory = new CacheFactory([
            new RedisCacheDriver(),
            new KVCacheDriver(),
            new ArrayCacheDriver(),
            new FileCacheDriver(),
            new LruCacheDriver(),
            new \Beauty\Tarantool\Driver\TarantoolCacheDriver(), //  Note: The DSN connection string only includes host, port, user, and password. The `space` is the logical "table" name inside Tarantool where cache items live, and it's handled internally.

---

How It Works
------------

[](#how-it-works)

- Keys and values are stored as tuples in the Tarantool space.
- Every cache entry is a tuple `{ key, value }`.
- Operations like `set`, `get`, `delete` map to Tarantool's `replace`, `get`, and `delete` calls respectively.

Just don’t ask about TTL — this isn’t your grandma’s Redis.

---

Testing
-------

[](#testing)

To test locally, run Tarantool with our init script:

```
docker run -d --name tarantool -p 3301:3301 -v $(pwd)/init.lua:/init.lua tarantool/tarantool tarantool /init.lua
```

`init.lua` sets up the cache space with the proper format:

```
print("[init] Tarantool script running!")

box.cfg{}

box.schema.user.grant('guest', 'read,write,execute', 'universe', nil, { if_not_exists = true })

local space = box.schema.space.create('cache', { if_not_exists = true })
space:format({
  { name = 'key', type = 'string' },
  { name = 'value', type = 'any', is_nullable = true }
})
space:create_index('primary', {
  parts = { 'key' },
  if_not_exists = true
})

print("[init] Tarantool cache space created!")
```

Or,

```
cd tests
./start-tarantool.sh
```

```
cd ../
./vendor/bin/phpunit

```

---

A Word of Caution
-----------------

[](#a-word-of-caution)

Using Tarantool as a cache backend is like bringing a rocket launcher to a water balloon fight — overkill, fun, and totally unexpected.
But hey, if you want blazing speed, Lua scripting, and a database that can do *everything* except maybe your laundry, Tarantool’s your pal.

---

License
-------

[](#license)

MIT

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance52

Moderate activity, may be stable

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

332d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/068f8c26f06f513a9c38d2a01c4d90a85eae1125a5b9d14eae7059715be860e4?d=identicon)[m1n64](/maintainers/m1n64)

---

Top Contributors

[![m1n64](https://avatars.githubusercontent.com/u/24874264?v=4)](https://github.com/m1n64 "m1n64 (2 commits)")

---

Tags

tarantoolcockroachdbbeauty

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/beauty-framework-tarantool-support/health.svg)

```
[![Health](https://phpackages.com/badges/beauty-framework-tarantool-support/health.svg)](https://phpackages.com/packages/beauty-framework-tarantool-support)
```

###  Alternatives

[tarantool/mapper

PHP Object Mapper for Tarantool.

6862.4k4](/packages/tarantool-mapper)[tarantool/client

PHP client for Tarantool.

67430.7k21](/packages/tarantool-client)[rybakit/phive-queue

$queue-&gt;push('I can be popped off after', '10 minutes');

16441.5k1](/packages/rybakit-phive-queue)[ylsideas/cockroachdb-laravel

This is my package cockroachdb-laravel

7029.5k](/packages/ylsideas-cockroachdb-laravel)[nbj/cockroachdb-laravel

CockroachDB driver for Laravel 8

5728.1k](/packages/nbj-cockroachdb-laravel)[tarantool/queue

PHP bindings for Tarantool Queue.

64136.2k4](/packages/tarantool-queue)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
