Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Client Laravel Package

tarantool/client

Pure PHP client for Tarantool 1.7.1+, supporting Unix sockets, SQL, custom types like decimals and UUIDs, middleware, and full customization with thorough testing.

View on GitHub
Deep Wiki
Context7

PHP client for Tarantool.

Frequently asked questions about Client
How do I install tarantool/client in a Laravel application?
Install it with composer require tarantool/client. The package does not auto-register a Laravel service provider, so bind Tarantool\Client\Client in AppServiceProvider using Client::fromDsn(env('TARANTOOL_DSN')). Version 0.11.0 requires PHP 8.2+ and Laravel 10.3+, 11.x, or 12.x.
Which Laravel and PHP versions does tarantool/client v0.11.0 support?
v0.11.0 requires PHP 8.2 or newer. It fits Laravel 10.3+ only when the runtime is already PHP 8.2, and Laravel 11.x or 12.x are the natural targets. Laravel 8 and 9 are no longer viable because PHP 7.4 and PHP 8.0–8.1 support was dropped.
Does tarantool/client provide a native Laravel service provider or facade?
No, tarantool/client has no native Laravel service provider or facade. Register a singleton or binding manually in AppServiceProvider, typically returning Client::fromDsn(env('TARANTOOL_DSN')). The typed binding return type now enforces the client contract and surfaces misconfiguration earlier.
Can I use tarantool/client with Eloquent or Laravel's query builder?
There is no Eloquent or Laravel Query Builder bridge; you work with spaces and indexes through getSpace() and raw Criteria/Operations. Build a repository layer around the client rather than expecting model mapping. The strict typing in v0.11.0 makes that repository layer effectively mandatory, and the separate tarantool-php/mapper package can help with mapping outside Eloquent.
How do I configure a Tarantool connection using a DSN in Laravel?
Use Client::fromDsn() with a DSN or URI stored in an environment variable such as TARANTOOL_DSN. Keep host, port, credentials, and socket details in .env so they follow Laravel's normal configuration practices. Bind the configured client in AppServiceProvider; Unix domain sockets are supported by the package.
What breaks when upgrading tarantool/client to v0.11.0?
v0.11.0 raises the floor to PHP 8.2+ and drops PHP 7.4 and PHP 8.0–8.1. Native parameter and property types can throw TypeError where older code passed strings for ints, nulls into non-nullable parameters, or arrays instead of typed collections. The msgpack dependency moves to >=0.11.2, so re-verify large unsigned integer and binary payload encoding before rollout.
How does middleware work in tarantool/client and can I use it for retries or logging?
Attach middleware with withMiddleware() to handle logging, retries, authentication, or custom behavior. Manage middleware order explicitly, especially RetryMiddleware versus AuthenticationMiddleware, to avoid auth leaks on retries. The PHP client is synchronous, so Horizon-style async processing would require custom middleware or architecture.
Do I need PECL extensions for Tarantool decimal and UUID types?
The client is pure PHP, but using Tarantool's Decimal type requires the PECL decimal extension. UUID support works without an extension, though the PECL uuid extension is recommended for better performance. Plan extension availability into your Laravel deployment if you rely on decimals or high-volume UUID handling.
Is tarantool/client suitable for high-load Laravel queue workers?
The client is synchronous and has no built-in connection pooling, so high-load queue workers need external pooling or connection management. Use middleware for logging and retries, but order retry and authentication middleware carefully to avoid auth leaks. Verify Decimal/UUID extension performance and msgpack encoding under production payloads before scaling.
How is tarantool/client tested and maintained for future PHP versions?
The package is thoroughly tested with CI covering PHP 8.2 through 8.5. Its tooling was modernized to PHPUnit 10, PHP-CS-Fixer 3, and Psalm 5/6, which signals active maintenance and forward compatibility. Those tooling changes mainly affect teams extending the package's own test suite rather than typical Laravel consumers.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin