搜尋套件、儲存庫與 APP 分類

套件詳情v1.5.6

zstandard_web

Web implementation of the Zstandard compression plugin for Flutter applications.

Web
近 30 天下載
4.8萬
喜歡數
1
Pub 分數
160

安裝套件

flutter pub add zstandard_web

套件介紹

根據套件公開資料產生的選型評估,僅供參考。

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.

適用情境

  • 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

主要特色

  • Zstandard compression support on web
  • High-speed compression and decompression
  • Browser-native performance
  • Open-source and actively maintained
  • Seamless Flutter web integration

適合對象

  • 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

使用建議

  • 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

原始 README

以下為關聯原始碼儲存庫的 README 原文快照,最新內容請造訪原始碼儲存庫。

pub package
pub package
codecov

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.


Compatibility

Android iOS Web macOS Windows Linux Fuchsia
Flutter :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: (wasm) :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: ❌
Native FFI FFI WebAssembly FFI FFI FFI ❌
Precompiled No No Yes No No No ❌
macOS Windows Linux
x64 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
arm64 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Precompiled Yes Yes Yes

Documentation

Full documentation is in the docs/ directory, including:


Basic Usage

In-App (Flutter)
import 'package:zstandard/zstandard.dart';

void main() async {
  final zstandard = Zstandard();

  Uint8List originalData = Uint8List.fromList([...]);

  Uint8List? compressed = await zstandard.compress(originalData, 3);
  
  final decompressed = compressed == null
      ? null
      : await zstandard.decompress(compressed, maxOutputSize: 64 * 1024 * 1024);
}

Using extensions:

import 'package:zstandard/zstandard.dart';

void main() async {
  Uint8List originalData = Uint8List.fromList([...]);

  Uint8List? compressed = await originalData.compress();
  
  final decompressed = await compressed.decompress(
    maxOutputSize: 64 * 1024 * 1024,
  );
}
Command Line (zstandard_cli)
# 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';

void main() 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';

void main() async {
  final originalData = Uint8List.fromList([...]);

  final compressed = await originalData.compress(compressionLevel: 3);

  final decompressed = await compressed.decompress();
}

Screenshots

Compression and Decompression Samples
macOS

Windows

Linux

Flutter Plugin (Android, iOS, macOS, Web, Windows, Linux)


License

This project uses code from the original facebook/zstd repository. Please see the LICENSE file for more information.

所屬分類

依賴

依賴清單 2 項

原始碼儲存庫

使用此套件的專案

暫無相關資料。

所在榜單