パッケージ、リポジトリ、アプリカテゴリを検索

パッケージ詳細v1.5.6

zstandard_platform_interface

zstandard プラグイン用の共通プラットフォームインターフェース。

AndroidiOSLinuxmacOSWebWindows
30日間ダウンロード
4.8万
いいね数
1
Pub ポイント
150

パッケージをインストール

flutter pub add zstandard_platform_interface

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

A shared platform interface for the zstandard compression plugin, enabling consistent cross-platform integration of Zstandard compression and decompression across Android, iOS, Linux, macOS, Web, and Windows. This package abstracts platform-specific implementations, allowing developers to write unified code that works seamlessly on all supported platforms. It serves as a foundation for other zstandard-related packages, promoting maintainability and reducing duplication. The interface is designed to be extended by platform-specific implementations, ensuring compatibility and performance while keeping the API stable.

用途

  • Cross-platform compression utilities
  • Unified data compression in multi-platform apps
  • Integration with zstandard-based file handling
  • Supporting efficient data storage and transmission
  • Building plugins that rely on Zstandard compression

主な機能

  • Shared platform interface
  • Multi-platform support (Android, iOS, Linux, macOS, Web, Windows)
  • Extensible design for platform-specific implementations
  • Stable and consistent API
  • Facilitates plugin development for Zstandard

適している対象

  • Developers building cross-platform compression tools
  • Plugin authors needing a standardized zstandard interface
  • Apps requiring efficient, platform-agnostic data compression
  • Teams maintaining multiple platform builds with shared logic

注意事項

  • Requires implementation by platform-specific packages
  • Not usable standalone without platform extensions
  • Dependent on correct setup of underlying zstandard libraries
  • May require additional configuration for Web or Windows environments

元の 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.

カテゴリー

依存関係

依存関係一覧 1 件

  • plugin_platform_interface^2.1.8

ソースリポジトリ

このパッケージを使用しているプロジェクト

データはまだありません。

ランキング