Skip to content

Dart library to encode and decode various archive and compression formats, such as Zip and Tar.

License

Notifications You must be signed in to change notification settings

scheglov/archive

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

archive

Build Status

Overview

A Dart library to encode and decode various archive and compression formats.

The library has no reliance on dart:io, so it can be used for both server and web applications.

The archive library currently supports the following decoders:

  • Zip (Archive)
  • Tar (Archive)
  • ZLib [Inflate decompression]
  • GZip [Inflate decompression]
  • BZip2 [decompression]

And the following encoders:

  • Zip (Archive)
  • Tar (Archive)
  • ZLib [Deflate compression]
  • GZip [Deflate compression]
  • BZip2 [compression]

Sample

Extract the contents of a Zip file, and encode the contents as a BZip2 compressed Tar file:

import 'dart:io' as Io;
import 'package:archive/archive.dart';
void main() {
  // Read the Zip file from disk.
  List<int> bytes = new Io.File('test.zip').readAsBytesSync();

  // Decode the Zip file
  Archive archive = new ZipDecoder().decodeBytes(bytes);

  // Extract the contents of the Zip archive to disk.
  for (ArchiveFile file in archive) {
    String filename = file.name;
    List<int> data = file.content;
    new Io.File('out/' + filename)
          ..createSync(recursive: true)
          ..writeAsBytesSync(data);
  }

  // Encode the archive as a BZip2 compressed Tar file.
  List<int> tar_data = new TarEncoder().encode(archive);
  List<int> tar_bz2 = new BZip2Encoder().encode(tar_data);

  // Write the compressed tar file to disk.
  Io.File fp = new Io.File(filename + '.tbz');
  fp.writeAsBytesSync(tar_bz2);
}

About

Dart library to encode and decode various archive and compression formats, such as Zip and Tar.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Dart 99.8%
  • Other 0.2%