Skip to content

Examples

Practical examples showing how to use zstd.zig. All 12 examples live in examples/ with _ names and are run via zig build run-<name>.

All 12 Examples

ExampleFileDescriptionRun Command
basic_compressionexamples/basic_compression.zigBasic compress/decompress round tripzig build run-basic_compression
basic_decompressionexamples/basic_decompression.zigDecompression with verificationzig build run-basic_decompression
custom_levelexamples/custom_level.zigNumeric compression levels 1-22 via compressWithLevelzig build run-custom_level
advanced_paramsexamples/advanced_params.zigCustom window, checksum, strategy via CompressionOptionszig build run-advanced_params
dictionary_compressionexamples/dictionary_compression.zigDictionary creation (createDictionaryFromData) and header dict_id handlingzig build run-dictionary_compression
dictionary_trainingexamples/dictionary_training.zigTraining via DictionaryBuilder.train, trainCover, trainFastCoverzig build run-dictionary_training
streaming_compressionexamples/streaming_compression.zigStreaming compression with StreamingCompressor + EndDirectivezig build run-streaming_compression
streaming_decompressionexamples/streaming_decompression.zigStreaming decompression with StreamingDecompressorzig build run-streaming_decompression
custom_allocatorexamples/custom_allocator.zigCustom TrackingAllocator trackingzig build run-custom_allocator
error_handlingexamples/error_handling.zigCorruption, truncation, and buffer error caseszig build run-error_handling
legacy_decompressionexamples/legacy_decompression.zigLegacy frame detection for v01-v07 (zstd.legacy) and skippable frameszig build run-legacy_decompression
file_compressionexamples/file_compression.zigReal file compression, write to .zst archive, and decompressionzig build run-file_compression

Run all at once:

bash
zig build run-all-examples

Per-Example Client-Side Guides (code + output + explanation)

GuideExample FileClient-Side Focus
Basic Compressionbasic_compression.zigcompress/decompress round-trip, ratio, std.debug.print
Basic Decompressionbasic_decompression.zigdecompress verification, std.mem.eql
Custom Levelcustom_level.zigcompressWithLevel 1-22, minCLevel/maxCLevel
Advanced Paramsadvanced_params.ziggetCompressionParameters, checksum, window_log, strategy
Dictionary Compressiondictionary_compression.zigcreateDictionaryFromData, dictId, CompressionOptions.dict_id
Dictionary Trainingdictionary_training.zigDictionaryBuilder.train/trainCover/trainFastCover
Streaming Compressionstreaming_compression.zigStreamingCompressor, EndDirective, remaining
Streaming Decompressionstreaming_decompression.zigStreamingDecompressor, needs_more, chunked 64B
Custom Allocatorcustom_allocator.zigTrackingAllocator, allocated/allocs/frees
Error Handlingerror_handling.zigPrefixUnknown, SrcSizeWrong, DstSizeTooSmall
Legacy Decompressionlegacy_decompression.ziglegacy.isLegacy, legacyVersion, isFrame, skippable
File Compressionfile_compression.zigstd.Io.Dir file → .zst → restore, writeFile/openFile/stat

Validate

bash
zig build test --summary all
zig build run-all-examples
zig build -Dtarget=aarch64-linux
zig build -Dtarget=x86_64-windows
zig build -Dtarget=aarch64-macos
zig build test -Dtarget=aarch64-linux --summary all -fqemu

Released under the MIT License.