Basic Decompression
examples/basic_decompression.zig — decompress and verify.
Client Code
zig
const std = @import("std");
const zstd = @import("zstd");
pub fn main() !void {
var gpa = std.heap.DebugAllocator(.{}){};
defer _ = gpa.deinit();
const allocator = gpa.allocator();
const original = "Example data to compress and then decompress using zstd.zig";
const compressed = try zstd.compress(allocator, original);
defer allocator.free(compressed);
const decompressed = try zstd.decompress(allocator, compressed);
defer allocator.free(decompressed);
std.debug.assert(std.mem.eql(u8, original, decompressed));
std.debug.print("Decompression successful: {s}\n", .{decompressed});
}Output
text
Decompression successful: Example data to compress and then decompress using zstd.zigExplanation
- Compresses
originalwithzstd.compress, then immediately decompresses withzstd.decompress. - Validates
FrameHeader(getFrameHeader) and content size;decompresschecksChecksumifchecksum_flagis set and validatesContent_Size. - Shows the minimal decompression path used when receiving a
.zstpayload.
Run:
bash
zig build run-basic_decompression