archiver vs adm-zip vs node-zip vs yauzl vs yazl vs zip-lib
Node.js Zip Kütüphaneleri
archiveradm-zipnode-zipyauzlyazlzip-libBenzer Paketler:

Node.js Zip Kütüphaneleri

Zip kütüphaneleri, Node.js uygulamalarında dosyaları sıkıştırmak ve açmak için kullanılan araçlardır. Bu kütüphaneler, dosya sistemindeki dosyaları zip formatında paketlemek veya mevcut zip dosyalarını okumak için çeşitli yöntemler sunar. Geliştiricilerin dosya yönetimini kolaylaştırarak, veri transferini hızlandırır ve depolama alanını optimize eder.

npm İndirme Trendi

3 Yıl

GitHub Stars Sıralaması

İstatistik Detayı

Paket
İndirmeler
Stars
Boyut
Issues
Yayın Tarihi
Lisans
archiver66,563,0072,97939.6 kB175il y a 6 moisMIT
adm-zip02,186151 kB61il y a 2 moisMIT
node-zip0217-19il y a 12 ans-
yauzl0831110 kB12il y a 5 moisMIT
yazl038958.7 kB22il y a 2 ansMIT
zip-lib04568.8 kB1il y a 5 moisMIT

Özellik Karşılaştırması: archiver vs adm-zip vs node-zip vs yauzl vs yazl vs zip-lib

Kullanım Kolaylığı

  • archiver:

    Archiver, biraz daha karmaşık bir API'ye sahiptir, ancak daha fazla özelleştirme ve kontrol sunar. Özellikle büyük dosyalarla çalışırken daha fazla esneklik sağlar.

  • adm-zip:

    Adm-zip, basit bir API sunar ve zip dosyalarını oluşturmak ve açmak için kolay bir yol sağlar. Hızlı bir şekilde dosyaları sıkıştırmak için idealdir.

  • node-zip:

    Node-zip, temel zip işlemleri için yeterli bir kullanım sunar, ancak daha karmaşık işlemler için sınırlı kalabilir.

  • yauzl:

    Yauzl, zip dosyalarını okumak için optimize edilmiştir ve kullanımı oldukça basittir. Performans odaklı bir okuma deneyimi sunar.

  • yazl:

    Yazl, zip dosyalarını yazmak için basit bir API sunar. Akış tabanlı yapısı sayesinde kullanıcı dostudur.

  • zip-lib:

    Zip-lib, kapsamlı bir API sunar, ancak bu da öğrenme eğrisini artırabilir. Gelişmiş özellikler arayanlar için uygundur.

Performans

  • archiver:

    Archiver, akış tabanlı yapısı sayesinde büyük dosyalarla çalışırken yüksek performans sağlar ve bellek yönetimini optimize eder.

  • adm-zip:

    Adm-zip, küçük dosyalar için hızlı bir performans sunar, ancak büyük dosyalarla çalışırken bellek kullanımı artabilir.

  • node-zip:

    Node-zip, temel performans sunar, ancak büyük dosyalarla çalışırken yetersiz kalabilir.

  • yauzl:

    Yauzl, zip dosyalarını okuma konusunda yüksek performans sunar ve büyük dosyalarla etkili bir şekilde başa çıkabilir.

  • yazl:

    Yazl, akış tabanlı yapısı sayesinde büyük dosyaları yazarken bellek kullanımını optimize eder ve iyi bir performans sunar.

  • zip-lib:

    Zip-lib, kapsamlı bir API sunarken, performans açısından da iyi sonuçlar verir.

Desteklenen Özellikler

  • archiver:

    Archiver, zip dosyalarına ekleme, sıkıştırma seviyeleri ve akış tabanlı yazma gibi gelişmiş özellikler sunar.

  • adm-zip:

    Adm-zip, temel zip işlemleri için gerekli olan tüm özellikleri destekler, ancak daha gelişmiş özellikler sunmaz.

  • node-zip:

    Node-zip, temel zip işlemleri için yeterli özellikler sunar, ancak daha fazla özelleştirme imkanı yoktur.

  • yauzl:

    Yauzl, zip dosyalarını okuma konusunda yüksek performans sunarken, sadece okuma işlemleri için optimize edilmiştir.

  • yazl:

    Yazl, zip dosyalarını yazmak için gerekli olan temel özellikleri sunar, ancak daha fazla özelleştirme imkanı yoktur.

  • zip-lib:

    Zip-lib, zip dosyalarıyla ilgili kapsamlı bir özellik seti sunar, dosya ve dizin yapısını koruma gibi gelişmiş özellikler içerir.

Kütüphane Boyutu

  • archiver:

    Archiver, daha fazla özellik sunduğu için biraz daha büyük bir kütüphanedir.

  • adm-zip:

    Adm-zip, küçük boyutlu bir kütüphanedir ve hızlı bir şekilde projelere eklenebilir.

  • node-zip:

    Node-zip, küçük bir kütüphane olmasına rağmen, sınırlı özellikler sunar.

  • yauzl:

    Yauzl, hafif bir kütüphanedir ve sadece okuma işlemleri için optimize edilmiştir.

  • yazl:

    Yazl, hafif bir yapıya sahiptir ve yazma işlemleri için idealdir.

  • zip-lib:

    Zip-lib, kapsamlı bir API sunduğu için diğerlerine göre daha büyük bir kütüphanedir.

Topluluk Desteği

  • archiver:

    Archiver, aktif bir topluluğa sahiptir ve sık güncellemeler alır.

  • adm-zip:

    Adm-zip, geniş bir kullanıcı tabanına sahip olup, topluluk desteği oldukça iyidir.

  • node-zip:

    Node-zip, daha az popülerdir ve topluluk desteği sınırlıdır.

  • yauzl:

    Yauzl, performans odaklı bir kütüphane olarak belirli bir kullanıcı kitlesine sahiptir.

  • yazl:

    Yazl, daha az bilinen bir kütüphane olmasına rağmen, temel ihtiyaçları karşılar.

  • zip-lib:

    Zip-lib, kapsamlı bir API sunduğu için daha fazla kullanıcı tarafından tercih edilmektedir.

Nasıl Seçilir: archiver vs adm-zip vs node-zip vs yauzl vs yazl vs zip-lib

  • archiver:

    Archiver, daha karmaşık zip dosyaları oluşturmak için güçlü bir seçenektir. Akış tabanlı yapısı sayesinde büyük dosyalarla çalışırken bellek yönetimi açısından avantaj sağlar.

  • adm-zip:

    Adm-zip, basit ve hızlı bir şekilde zip dosyalarını oluşturmak ve açmak için idealdir. Küçük projeler veya hızlı prototipler için tercih edilebilir.

  • node-zip:

    Node-zip, temel zip işlemleri için uygun bir kütüphanedir. Ancak, daha fazla özellik arayanlar için sınırlı kalabilir.

  • yauzl:

    Yauzl, zip dosyalarını okumak için optimize edilmiştir. Okuma işlemlerinde yüksek performans sunar ve büyük zip dosyaları ile çalışmak için idealdir.

  • yazl:

    Yazl, zip dosyalarını yazmak için kullanılan hafif bir kütüphanedir. Akış tabanlı yapısı sayesinde bellek kullanımını optimize eder ve büyük dosyalarla çalışırken etkilidir.

  • zip-lib:

    Zip-lib, zip dosyalarını yönetmek için kapsamlı bir API sunar. Özellikle dosya ve dizin yapısını koruyarak zip dosyaları oluşturmak isteyenler için uygundur.

archiver için README

Archiver

A streaming interface for archive generation

Visit the API documentation for a list of all methods available.

Install

npm install archiver --save

Quick Start

import fs from "fs";
import { ZipArchive } from "archiver";

// create a file to stream archive data to.
const output = fs.createWriteStream(__dirname + "/example.zip");
const archive = new ZipArchive({
  zlib: { level: 9 }, // Sets the compression level.
});

// listen for all archive data to be written
// 'close' event is fired only when a file descriptor is involved
output.on("close", function () {
  console.log(archive.pointer() + " total bytes");
  console.log(
    "archiver has been finalized and the output file descriptor has closed.",
  );
});

// This event is fired when the data source is drained no matter what was the data source.
// It is not part of this library but rather from the NodeJS Stream API.
// @see: https://nodejs.org/api/stream.html#stream_event_end
output.on("end", function () {
  console.log("Data has been drained");
});

// good practice to catch warnings (ie stat failures and other non-blocking errors)
archive.on("warning", function (err) {
  if (err.code === "ENOENT") {
    // log warning
  } else {
    // throw error
    throw err;
  }
});

// good practice to catch this error explicitly
archive.on("error", function (err) {
  throw err;
});

// pipe archive data to the file
archive.pipe(output);

// append a file from stream
const file1 = __dirname + "/file1.txt";
archive.append(fs.createReadStream(file1), { name: "file1.txt" });

// append a file from string
archive.append("string cheese!", { name: "file2.txt" });

// append a file from buffer
const buffer3 = Buffer.from("buff it!");
archive.append(buffer3, { name: "file3.txt" });

// append a file
archive.file("file1.txt", { name: "file4.txt" });

// append files from a sub-directory and naming it `new-subdir` within the archive
archive.directory("subdir/", "new-subdir");

// append files from a sub-directory, putting its contents at the root of archive
archive.directory("subdir/", false);

// append files from a glob pattern
archive.glob("file*.txt", { cwd: __dirname });

// finalize the archive (ie we are done appending files but streams have to finish yet)
// 'close', 'end' or 'finish' may be fired right after calling this method so register to them beforehand
archive.finalize();

Formats

Archiver ships with out of the box support for TAR and ZIP archives.