Package selection guidance compiled from public package information, community data, and project usage.
The zstandard_web package provides a web-compatible implementation of the Zstandard compression algorithm for Flutter applications. It enables efficient compression and decompression of data directly in the browser, leveraging the high-performance Zstandard codec optimized for speed and compression ratio. This package is designed specifically for web platforms, ensuring seamless integration with Flutter's web build pipeline. It allows developers to reduce payload sizes and improve loading times by compressing assets or data transfers. The package is maintained by vyp.dev and is open-source, hosted on GitHub.
Use cases
Compressing web app assets
Reducing network payload size
Optimizing data transfer in web apps
Enhancing performance for large data handling
Enabling fast compression in browser-based Flutter apps
Key features
Zstandard compression support on web
High-speed compression and decompression
Browser-native performance
Open-source and actively maintained
Seamless Flutter web integration
Suitable for
Flutter web developers needing efficient compression
Applications with large data payloads
Performance-critical web apps
Developers using Zstandard in other environments
Projects requiring lightweight, fast compression
Considerations
Limited to web platform only
Requires Dart 2.12+
Depends on native WebAssembly for performance
Not compatible with mobile or desktop platforms
May increase initial bundle size due to WebAssembly
Original README
Original README snapshot from the linked source repository. Visit the repository for the latest content.
Zstandard
Zstandard (zstd) is a fast, high-compression algorithm developed by Meta (formerly Facebook) designed for real-time compression scenarios. It offers a flexible range of compression levels, allowing both high-speed and high-ratio compression, making it ideal for applications with diverse performance needs. Zstandard is widely used in data storage, transmission, and backup solutions.
This repository contains a federated Flutter plugin and a CLI package for zstandard compression, enabling both in-app and command-line usage. The two main components are:
zstandard: A Flutter plugin for cross-platform compression, supporting mobile, desktop, and web platforms. This package integrates the zstd library through FFI for native platforms and WebAssembly for the web, allowing efficient data compression in any Flutter environment.
zstandard_cli: A pure Dart package providing CLI capabilities for macOS, Windows, and Linux. It enables command-line compression and decompression for data files and streams.
Native platform packages and the CLI share the zstd C source and FFI bindings via the zstandard_native package (zstandard_native/src/zstd/). zstandard_native is published to pub.dev as part of this repo’s release set, so a single copy is used whether you depend on the plugin from the repo or from pub.dev.
# Compress a file with a specified compression level
dart run zstandard_cli:compress --level 3 myfile.txt
# Decompress a file
dart run zstandard_cli:decompress myfile.txt.zstd
Dart Code Example (CLI)
import'package:zstandard_cli/zstandard_cli.dart';
voidmain() async {
var cli = ZstandardCLI();
final originalData = Uint8List.fromList([...]);
final compressed = await cli.compress(originalData, compressionLevel: 3);
final decompressed = await cli.decompress(compressed ?? Uint8List(0));
}
Using extensions in Dart:
import'package:zstandard_cli/zstandard_cli.dart';
voidmain() async {
final originalData = Uint8List.fromList([...]);
final compressed = await originalData.compress(compressionLevel: 3);
final decompressed = await compressed.decompress();
}