搜索插件、代码仓与 APP 分类

插件详情v1.5.6

zstandard_macos

macOS implementation of the Zstandard compression plugin for Flutter applications.

macOS
近 30 天下载
4.7万
喜欢数
1
Pub 分数
160

安装插件

flutter pub add zstandard_macos

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

The zstandard_macos package provides a macOS-specific implementation of the Zstandard compression algorithm for Flutter applications. It enables efficient, high-performance compression and decompression of data on macOS platforms, leveraging the native Zstandard library for optimal speed and compression ratio. Designed for developers seeking fast, reliable file compression within Flutter apps targeting macOS, it integrates seamlessly with existing Dart code. The package is particularly useful for handling large datasets, reducing storage usage, or optimizing data transfer in macOS-native applications.

适合场景

  • Compressing large files for storage
  • Optimizing data transfer in macOS apps
  • Reducing app bundle size
  • Handling real-time data compression
  • Improving performance of file operations

主要特点

  • Native Zstandard integration
  • High compression ratios
  • Fast compression/decompression speeds
  • macOS-only platform support
  • Seamless Flutter integration

适合对象

  • Flutter developers targeting macOS
  • Applications requiring efficient file compression
  • Performance-sensitive data processing
  • Apps managing large datasets

使用建议

  • Limited to macOS platform
  • Requires native library setup
  • May increase app binary size
  • Dependent on external Zstandard library
  • Not compatible with other platforms

原始 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.

所属分类

依赖

依赖清单 3 项

源码仓库

使用此插件的项目

暂无相关数据。

所在榜单