id()
id() : string
The stable identifier recorded in a frame header.
Returns
string —A short lowercase token such as "zstd", "gzip" or "none".
Zstandard through `ext-zstd`.
The codec Strata is designed around. Measured on Drupal-shaped data in 8 KiB frames: 3.71x alone, and 6.20x with a trained dictionary - 76% fewer stored bytes than gzip at the same frame size. Level 1 runs at 287 MB/s and level 19 at 2.6 MB/s, which is why the flush path and the compaction path use different levels rather than one compromise.
The extension is absent on many hosts, so ZstdCodec::isAvailable() gates every entry point.
ZstdPipeCodec covers the same algorithm through the zstd binary for bulk work when the
extension is missing.
Dictionary support is probed per function, because the extension has shipped more than one spelling of the dictionary API and a host can have the base functions without them.
levels() : array{min: int, max: int, default: int, fast: int, dense: int}
The compression levels this codec accepts.
The usable range, the default, the level to use on the flush path where throughput matters, and the level to use during compaction where ratio matters.
compress(string $data, ?int $level = null, ?string $dictionary = null) : string
Compresses a buffer.
| string | $data | The bytes to compress. An empty string compresses to an empty string, so that an absent payload never becomes a non-empty frame. |
| ?int | $level | A level within CompressionCodecInterface::levels(), or NULL for the default. |
| ?string | $dictionary | Raw dictionary bytes, or NULL. Ignored by codecs that report no dictionary support, so a caller never has to branch on it. |
The compressed bytes.