jszip vs archiver vs adm-zip vs node-zip vs zip-a-folder vs zip-local
Dosya Sıkıştırma ve Arşivleme
jsziparchiveradm-zipnode-zipzip-a-folderzip-localSimilar Packages:

Dosya Sıkıştırma ve Arşivleme

JavaScript'te dosya sıkıştırma ve arşivleme, dosyaları veya dizinleri tek bir dosya haline getirerek depolama alanını azaltma veya birden fazla dosyayı bir arada göndermeyi kolaylaştırma işlemidir. Bu işlem, dosyaları ZIP, TAR veya GZ gibi formatlarda sıkıştırarak gerçekleştirilir. Node.js için çeşitli kütüphaneler, geliştiricilerin uygulamalarında dosya sıkıştırma ve arşivleme işlevselliği eklemelerine olanak tanır. Bu kütüphaneler, dosyaları programatik olarak sıkıştırma, arşivleme, açma ve içlerinden dosya çıkarma gibi işlemleri gerçekleştirmek için çeşitli API'ler sunar. Örneğin, adm-zip kütüphanesi, ZIP dosyalarını oluşturma ve yönetme konusunda basit bir API sunarken, archiver kütüphanesi daha karmaşık arşivleme işlemleri için esneklik ve özelleştirme imkanı sağlar. Bu kütüphaneler, dosya yönetimi, veri yedekleme, web uygulamaları ve daha birçok alanda kullanılır.

Npm Package Weekly Downloads Trend

3 Years

Github Stars Ranking

Stat Detail

Package
Downloads
Stars
Size
Issues
Publish
License
jszip69,917,48110,394693 kB3912 months ago(MIT OR GPL-3.0-or-later)
archiver66,563,0072,97939.6 kB1756 months agoMIT
adm-zip31,674,7022,186151 kB612 months agoMIT
node-zip130,490217-1912 years ago-
zip-a-folder68,81178262 kB013 days agoMIT
zip-local35,20212257.1 kB13--

Feature Comparison: jszip vs archiver vs adm-zip vs node-zip vs zip-a-folder vs zip-local

Sıkıştırma ve Arşivleme

  • jszip:

    jszip kütüphanesi, ZIP dosyalarını oluşturma, okuma ve düzenleme işlemlerini yapmanıza olanak tanır. Hem tarayıcıda hem de Node.js ortamında çalışabilir, bu da onu çok yönlü bir çözüm haline getirir.

  • archiver:

    archiver kütüphanesi, akış tabanlı arşivleme yaparak büyük dosyaları veya dizinleri sıkıştırmanıza olanak tanır. ZIP, TAR, GZ gibi çeşitli formatlarda arşivleme yapabilir ve daha fazla özelleştirme imkanı sunar.

  • adm-zip:

    adm-zip kütüphanesi, ZIP dosyalarını oluşturma, açma ve içlerinden dosya çıkarma işlemlerini kolayca yapmanıza olanak tanır. ZIP dosyası oluşturma, var olan bir ZIP dosyasını açma ve içindeki dosyaları listeleme gibi temel işlemleri destekler.

  • node-zip:

    node-zip kütüphanesi, basit bir şekilde ZIP dosyaları oluşturma ve açma işlemlerini yapar. Ancak, daha karmaşık arşivleme işlemleri için sınırlı özelliklere sahiptir.

  • zip-a-folder:

    zip-a-folder kütüphanesi, bir dizini hızlı bir şekilde ZIP dosyasına sıkıştırmak için tasarlanmıştır. Dizin sıkıştırma işlemlerini basit ve hızlı bir şekilde gerçekleştirir.

  • zip-local:

    zip-local kütüphanesi, yerel dosyaları ve dizinleri ZIP dosyalarına sıkıştırmak için basit bir API sunar. Hızlı ve hafif bir çözüm olup, temel sıkıştırma işlemleri için idealdir.

Akış Desteği

  • jszip:

    jszip kütüphanesi, ZIP dosyalarını oluştururken ve okurken akış desteği sunmaz. Tüm dosyaları bellekte tutarak çalışır, bu da büyük dosyalarla çalışırken bellek kullanımı açısından sınırlamalar getirebilir.

  • archiver:

    archiver kütüphanesi, akış tabanlı arşivleme işlemleri için tasarlanmıştır. Bu sayede büyük dosyaları veya dizinleri sıkıştırırken bellek verimliliği sağlar ve daha az bellek kullanarak arşivleme yapar.

  • adm-zip:

    adm-zip kütüphanesi, akış tabanlı işlemler için optimize edilmemiştir. Tüm dosyaları bellekte tutarak çalışır, bu da büyük dosyalarla çalışırken bellek sorunlarına yol açabilir.

  • node-zip:

    node-zip kütüphanesi, akış tabanlı işlemler için optimize edilmemiştir. Tüm dosyaları bellekte tutarak çalışır, bu da büyük dosyalarla çalışırken bellek sorunlarına yol açabilir.

  • zip-a-folder:

    zip-a-folder kütüphanesi, dizinleri sıkıştırırken akış tabanlı bir yaklaşım kullanmaz. Tüm dizin içeriğini bellekte tutarak sıkıştırma işlemi yapar, bu da büyük dizinlerle çalışırken bellek kullanımı sorunlarına yol açabilir.

  • zip-local:

    zip-local kütüphanesi, akış tabanlı işlemler için optimize edilmemiştir. Tüm dosyaları bellekte tutarak çalışır, bu da büyük dosyalarla çalışırken bellek sorunlarına yol açabilir.

Dizin Sıkıştırma

  • jszip:

    jszip kütüphanesi, dizinleri sıkıştırma işlemini destekler. Dizin içindeki dosyaları ve alt dizinleri ZIP dosyasına ekleyebilir.

  • archiver:

    archiver kütüphanesi, dizinleri sıkıştırma işlemini destekler. Dizin içindeki tüm dosyaları ve alt dizinleri ZIP veya diğer arşiv formatlarına ekleyebilir.

  • adm-zip:

    adm-zip kütüphanesi, dizinleri sıkıştırma işlemini destekler. Dizin içindeki tüm dosyaları ve alt dizinleri ZIP dosyasına ekleyebilir.

  • node-zip:

    node-zip kütüphanesi, dizinleri sıkıştırma işlemini destekler. Ancak, alt dizinleri ve dosyaları eklerken daha sınırlı bir esneklik sunar.

  • zip-a-folder:

    zip-a-folder kütüphanesi, dizinleri sıkıştırma işlemini destekler. Bir dizini ve içindeki tüm dosyaları ve alt dizinleri hızlı bir şekilde ZIP dosyasına sıkıştırır.

  • zip-local:

    zip-local kütüphanesi, dizinleri sıkıştırma işlemini destekler. Dizin içindeki dosyaları ve alt dizinleri ZIP dosyasına ekleyebilir.

Örnek Kullanım

  • jszip:

    jszip kütüphanesi ile ZIP dosyası oluşturma ve okuma

    const JSZip = require('jszip');
    const fs = require('fs');
    const zip = new JSZip();
    
    // ZIP dosyasına dosya ekleme
    zip.file('hello.txt', 'Hello World!');
    zip.file('image.png', fs.readFileSync('path/to/image.png'));
    
    // ZIP dosyasını yazma
    zip.generateAsync({ type: 'nodebuffer' }).then(content => {
      fs.writeFileSync('output.zip', content);
    });
    
    // ZIP dosyasını okuma
    fs.readFile('output.zip', (err, data) => {
      zip.loadAsync(data).then(zip => {
        zip.file('hello.txt').async('string').then(content => {
          console.log(content);
        });
      });
    });
    
  • archiver:

    archiver kütüphanesi ile akış tabanlı ZIP dosyası oluşturma

    const fs = require('fs');
    const archiver = require('archiver');
    
    const output = fs.createWriteStream('output.zip');
    const archive = archiver('zip');
    
    output.on('close', () => {
      console.log(`Arşivleme tamamlandı: ${archive.pointer()} byte`);
    });
    
    archive.pipe(output);
    archive.directory('path/to/directory/', false);
    archive.finalize();
    
  • adm-zip:

    adm-zip kütüphanesi ile ZIP dosyası oluşturma ve açma işlemleri

    const AdmZip = require('adm-zip');
    
    // Yeni bir ZIP dosyası oluşturma
    const zip = new AdmZip();
    zip.addFile('example.txt', Buffer.from('Hello, World!'), 'A simple text file');
    zip.addLocalFile('path/to/image.png');
    zip.writeZip('output.zip');
    
    // ZIP dosyasını açma
    const zipFile = new AdmZip('output.zip');
    const zipEntries = zipFile.getEntries();
    zipEntries.forEach(entry => {
      console.log(entry.entryName);
    });
    
  • node-zip:

    node-zip kütüphanesi ile basit ZIP dosyası oluşturma

    const zip = require('node-zip')();
    const fs = require('fs');
    
    // ZIP dosyasına dosya ekleme
    zip.file('hello.txt', 'Hello World!');
    zip.file('image.png', fs.readFileSync('path/to/image.png'));
    
    // ZIP dosyasını oluşturma
    const data = zip.generate({ base64: false });
    fs.writeFileSync('output.zip', data, 'binary');
    
  • zip-a-folder:

    zip-a-folder kütüphanesi ile dizin sıkıştırma

    const zipFolder = require('zip-a-folder');
    
    zipFolder('path/to/directory', 'output.zip', (err) => {
      if (err) {
        console.error('Hata:', err);
      } else {
        console.log('Dizin başarıyla sıkıştırıldı!');
      }
    });
    
  • zip-local:

    zip-local kütüphanesi ile yerel dosyaları sıkıştırma

    const zipLocal = require('zip-local');
    
    zipLocal.zip('path/to/directory', (err, zipped) => {
      if (err) {
        console.error('Hata:', err);
      } else {
        zipped.write('output.zip', (writeErr) => {
          if (writeErr) {
            console.error('ZIP dosyası yazma hatası:', writeErr);
          } else {
            console.log('ZIP dosyası başarıyla yazıldı!');
          }
        });
      }
    });
    

How to Choose: jszip vs archiver vs adm-zip vs node-zip vs zip-a-folder vs zip-local

  • jszip:

    jszip kütüphanesini, ZIP dosyalarını oluşturmak, okumak ve düzenlemek için tarayıcı ve Node.js ortamlarında çalışabilen bir çözüm arıyorsanız tercih edin. Özellikle istemci tarafında ZIP dosyaları oluşturmak için uygundur.

  • archiver:

    archiver kütüphanesini, akış tabanlı arşivleme işlemleri yapmanız gerekiyorsa ve daha fazla özelleştirme ve esneklik istiyorsanız seçin. Büyük dosyalarla çalışırken bellek verimliliği sağlar.

  • adm-zip:

    adm-zip kütüphanesini, basit ve hızlı bir şekilde ZIP dosyaları oluşturmak, açmak veya içlerinden dosya çıkarmak istiyorsanız tercih edin. Kullanımı kolaydır ve küçük projeler için idealdir.

  • node-zip:

    node-zip kütüphanesini, basit ve hafif bir ZIP oluşturma ve açma aracı arıyorsanız seçin. Ancak, daha fazla özellik ve esneklik arıyorsanız sınırlı kalabilir.

  • zip-a-folder:

    zip-a-folder kütüphanesini, bir dizini hızlı ve kolay bir şekilde ZIP dosyasına sıkıştırmak istiyorsanız tercih edin. Kullanımı basittir ve dizin sıkıştırma işlemleri için özel olarak tasarlanmıştır.

  • zip-local:

    zip-local kütüphanesini, yerel dosyaları ve dizinleri ZIP dosyalarına sıkıştırmak için basit bir API arıyorsanız seçin. Hızlı ve hafif bir çözümdür.

README for jszip

JSZip

A library for creating, reading and editing .zip files with JavaScript, with a lovely and simple API.

See https://stuk.github.io/jszip for all the documentation.

const zip = new JSZip();

zip.file("Hello.txt", "Hello World\n");

const img = zip.folder("images");
img.file("smile.gif", imgData, {base64: true});

zip.generateAsync({type:"blob"}).then(function(content) {
    // see FileSaver.js
    saveAs(content, "example.zip");
});

/*
Results in a zip containing
Hello.txt
images/
    smile.gif
*/

License

JSZip is dual-licensed. You may use it under the MIT license or the GPLv3 license. See LICENSE.markdown.