Download the PHP package codelieutenant/scylla-driver without Composer
On this page you can find all versions of the php package codelieutenant/scylla-driver. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download codelieutenant/scylla-driver
More information about codelieutenant/scylla-driver
Files in codelieutenant/scylla-driver
Package scylla-driver
Short Description ScyllaDB/Cassandra PHP driver
License Apache-2.0
Informations about the package scylla-driver
A high-performance PHP extension for ScyllaDB and Apache Cassandra 3.0+, built on top of the ScyllaDB C/C++ Driver. Communicates exclusively over the native CQL binary protocol.
The extension is actively being migrated from C++ to C23 for improved performance, safety, and maintainability.
Compatibility
| Component | Supported versions |
|---|---|
| PHP | 8.2, 8.3, 8.4, 8.5 |
| ScyllaDB | 4.4.x, 5.x, 6.x |
| Apache Cassandra | 3.0+ (via DataStax libcassandra) |
| Architecture | x86-64 (64-bit only) |
| Thread safety | NTS and ZTS |
| Compilers | GCC 13+, Clang 16+ |
| OS | Linux, macOS |
Quick Start
Installation
Via PIE (recommended)
PIE is the official PHP extension installer. It handles downloading, building, and installing the extension in a single command.
Package: codelieutenant/scylla-driver
1. Install native dependencies
PIE builds the extension from source, so the C/C++ driver (and its own dependency, libuv) must be present first.
Export the pkg-config path so CMake can find both libraries:
2. Install with PIE
PIE places the compiled cassandra.so in your PHP extension directory and enables it automatically.
Prebuilt binaries
Each release attaches a .tar.gz for every supported combination. The archive
holds cassandra.so and cassandra.ini.
Two families are published:
| Family | Built on | Runs on |
|---|---|---|
manylinux_2_28_<arch> |
AlmaLinux 8, glibc 2.28, OpenSSL 1.1.1 | RHEL / Rocky / AlmaLinux 8, Ubuntu 18.04 and 20.04, Debian 10 and 11 |
ubuntu-<release> |
a current Ubuntu runner | recent Ubuntu releases |
Every release checks that the manylinux_2_28 archives ask for no symbol above
glibc 2.28, GLIBCXX 3.4.25 or CXXABI 1.3.11 — the versions RHEL 8 provides.
The module also needs libssl.so.1.1 and libcrypto.so.1.1. Those are the
system OpenSSL on RHEL 8, Ubuntu 20.04 and Debian 11. On a distribution that
moved to OpenSSL 3 (RHEL 9+, Ubuntu 22.04+, Debian 12+), install the OpenSSL
1.1 compatibility package or build from source instead.
Every archive also needs libuv.so.1 and libgmp.so.10. The C/C++ driver
itself is linked into the module, so you do not install it separately.
The file name is <family>-php<version>-<nts|ts>-<driver>.tar.gz. Match all
four parts to your host:
Install the extension:
Then enable it. Copy cassandra.ini into the scan directory that php --ini
reports, or add extension=cassandra to your php.ini. Confirm the result:
ts archives are for a ZTS PHP build. nts archives are for the default
non-thread-safe build. A mismatch stops the extension from loading.
Manual build from source
Prerequisites
The extension links against the ScyllaDB C/C++ driver (or DataStax libcassandra), which in turn needs libuv. Use the provided scripts to build them from source:
System packages (Debian/Ubuntu)
Building the Extension
The project uses CMake with presets for common configurations. Preset names follow the pattern <BuildType>PHP<Version><ThreadModel>, e.g. DebugPHP8.4NTS.
Configure and compile
Available build types
| Preset prefix | Description |
|---|---|
Debug |
Debug symbols, no optimisations |
Release |
Fully optimised |
RelWithDebugInfo |
Optimised with debug info |
CMake options
Regenerating CMake presets
After adding a new PHP version, regenerate CMakePresets.json:
Running Tests
Start a local ScyllaDB node, then run the Pest test suite:
Environment variables for the test suite:
| Variable | Default | Description |
|---|---|---|
SCYLLADB_HOSTS |
127.0.0.1 |
Comma-separated list of nodes |
SCYLLADB_PORT |
9042 |
CQL native port |
SCYLLADB_USERNAME |
cassandra |
Username |
SCYLLADB_PASSWORD |
cassandra |
Password |
SCYLLADB_KEYSPACE |
(empty) | Default keyspace |
Development Status
The extension is undergoing an incremental C++ → C23 migration. The src/Cluster/ module is the canonical reference implementation.
| Module | Status |
|---|---|
Cluster |
Refactored (C23 reference) |
RetryPolicy |
Partial — stubs done, handlers need C port |
DateTime |
Partial — stubs done |
SSLOptions |
Partial — stubs done |
Database |
Legacy |
Type |
Legacy |
Numbers |
Legacy |
TimestampGenerator |
Legacy |
Exception |
Legacy (thin wrappers) |
Contributing
- Bug reports — please include driver version, PHP version, ScyllaDB version, dependency versions, a full stack trace, and steps to reproduce.
- Pull requests — fork the repository and open a PR. See CONTRIBUTING.md for the full contribution guide.
- Questions / discussions — join the ScyllaDB Developers Discord.
License
Copyright © DataStax, Inc. and contributors.
Licensed under the Apache License, Version 2.0.
All versions of scylla-driver with dependencies
ext-date Version *