Skip to content

Releases: MichaelRoosz/php-cassandra

v1.2.0

19 Nov 15:31
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

v1.2.0

This release improves compatibility with older Cassandra versions, fixes LZ4 compression for protocol v3/v4 (Cassandra 3.x and 2.x), and adds full support for ScyllaDB.

Added

  • Full support for ScyllaDB (6.2, 2025.1, 2025.2, 2025.3).

Changed

  • Initial protocol version while connecting is now V4 (was V3). To connect to Cassandra version 2.1, initialProtocolVersion in ConnectionOptions has to be set to ProtocolVersion::V3.

Fixed

  • Fixed lz4 decompression for protocol v3 and v4 (Cassandra 3 and older)

v1.1.0

17 Nov 21:59
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

v1.1.0

This release introduces the ability to override the default pool of allowed protocol versions (v5, v4, v3) via the new allowedProtocolVersions property in ConnectionOptions. This is a low-level feature intended for advanced use cases and should not be used by most users. The default behavior, which attempts to negotiate the highest supported version (v5 > v4 > v3), is recommended for the majority of situations.

All breaking changes affect low-level API only, which is unlikely to be used by most users.

Breaking Changes

  • Cassandra\Protocol\Header: type of $version changed from int to Cassandra\Protocol\ProtocolVersion
  • These methods now expect for $version a value of type Cassandra\Protocol\ProtocolVersion instead of int:
    • Cassandra\Connection\ResponseReader::readResponse()
    • Cassandra\Request\Request::__construct()
    • Cassandra\Request\Request::setVersion()
  • Exception context: type of protocol_version changed from int to string

Changed

  • Cassandra\Connection: method getVersion() is now deprecated, use getProtocolVersion() instead
  • Cassandra\Protocol\Frame: method getVersion() is now deprecated, use getProtocolVersion() instead
  • Cassandra\Request\Request: method getVersion() is now deprecated, use getProtocolVersion() instead
  • Cassandra\Response\Response: method getVersion() is now deprecated, use getProtocolVersion() instead
  • Changed visibility of some properties and methods from protected to private to clarify public api

Added

  • Added enum Cassandra\Protocol\ProtocolVersion
  • Cassandra\Connection\ConnectionOptions: added property allowedProtocolVersions (array of enum Cassandra\Protocol\ProtocolVersion )
  • Cassandra\Connection: added method getProtocolVersion(): ProtocolVersion
  • Cassandra\Protocol\Frame: added method getProtocolVersion(): ProtocolVersion
  • Cassandra\Request\Request: added method getProtocolVersion(): ProtocolVersion
  • Cassandra\Response\Response: added method getProtocolVersion(): ProtocolVersion

Removed

  • Cassandra\Connection: removed method onWarnings()

Full Changelog: v1.0.1...v1.1.0

v1.0.1

24 Oct 08:50
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

This is a small bugfix release, restoring compatibility with older PHP versions (8.1, 8.2, 8.3).

Fixed

  • Fixed compatibility with PHP 8.1, 8.2 and 8.3

Full Changelog: v1.0.0...v1.0.1

v1.0.0 "Prism" 🔷🌈

16 Sep 21:13
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

This release brings major improvements across the library.
In contrast to previous releases, it includes some breaking API changes. These were necessary to introduce more exciting features (including full support for the Vector data type 🤖) and to enhance and fix existing ones.

Upcoming 1.x releases will focus on stability and performance while keeping the API stable.

Added 🔷

  • Updated Asynchronous API, now providing additional helper methods (waitForStatements, waitForAnyStatement, waitForAllPendingStatements) and supporting non-blocking response processing (drainAvailableResponses, tryResolveStatement, tryResolveStatements, tryReadNextResponse)
  • Events subsystem: blocking (waitForNextEvent) and non-blocking event polling (tryReadNextEvent)
  • New Value capabilities including Vector data type support
  • Support for configuring value encoding for data types with multiple encodings
  • Warnings listener interface and registration
  • Round-robin and random node selection strategies

Changed 🔷

  • Prepared statements: auto-prepare for typed execution, names-for-values auto-detection, re-prepare on UNPREPARED, metadata caching; helpers executeAll, pagination helpers
  • Enforce a minimum pageSize of 100 in QueryOptions for efficient paging

Fixed 🔷

  • Numerous stability and correctness fixes across execute/query flows and pagination edge cases
  • Richer server exception context (consistency levels, required/received counts, write types)

Documentation 🔷

  • Comprehensive README: quick start, configuration reference, async/event APIs, migration guide, error handling.

Tests 🔷

  • Added unit and integration tests for the critical parts of the library

v0.8.1

17 Jun 22:05

Choose a tag to compare

  • Allow types Date, Time and Timestamp to be created from string values

v0.8.0

01 Jun 22:19

Choose a tag to compare

v0.8.0

  • Improve API for prepared statements
  • Fix a bug in execute call
  • Fix phpdoc for paging_state
  • Fix version calculation for server packets
  • Replace SplFixedArray with array

v0.7.3-beta

24 Mar 00:36

Choose a tag to compare

v0.7.3-beta Pre-release
Pre-release
Update readme

v0.7.2-beta

21 Mar 23:31

Choose a tag to compare

v0.7.2-beta Pre-release
Pre-release
Update type value validation

v0.7.1-alpha

21 Mar 00:44

Choose a tag to compare

v0.7.1-alpha Pre-release
Pre-release
FIxed events, date/time types, updated readme

v0.7.0-alpha

19 Mar 00:07

Choose a tag to compare

v0.7.0-alpha Pre-release
Pre-release
Update composer.json and README.md