zstd_dart

Zstd compression and decompression for Dart, using native build hooks to compile the zstd C library at build time via package:native_toolchain_c.

Usage

import 'dart:typed_data';
import 'package:zstd_dart/zstd_dart.dart';

// Compress
final input = Uint8List.fromList([1, 2, 3, 4, 5]);
final compressed = ZstdCodec.compress(input);

// Decompress
final decompressed = ZstdCodec.decompress(compressed);

// Custom compression level (1-22, default 3)
final highCompression = ZstdCodec.compress(input, level: 19);

How it works

The package uses Dart's native build hooks (package:hooks) to compile zstd C sources from third_party/zstd/ into a shared library at build time. FFI bindings in lib/src/zstd_bindings.dart use @Native annotations to link to the compiled library automatically.

Requirements

  • Dart SDK >=3.10.0
  • A C compiler available on the build host (provided by the Dart/Flutter toolchain)

Libraries

zstd_dart