Skip to main content

Bibliothèque de compression de docier rapide pour Python utilisant Rust

Project description

Compressor

Bibliothèque de compression de répertoires rapide pour Python, propulsée par Rust.

Fonctionnalités

  • Compression ultra-rapide grâce à Rust
  • Formats multiples : tar.gz, tar.zlib, zip, 7z
  • Compression récursive - gère automatiquement les sous-répertoires
  • API Python simple - facile à utiliser
  • Haute performance - implémentation Rust optimisée

Installation

Depuis les sources

# Installation
pip install compressor-rs

Utilisation

import compressor

# Compresser un répertoire en tar.gz
compressor.compress_gz("mon_dossier/", "archive.tar.gz")

# Compresser un répertoire en tar.zlib
compressor.compress_zlib("mon_dossier/", "archive.tar.zlib")

# Compresser un répertoire en ZIP
compressor.compress_zip("mon_dossier/", "archive.zip")

# Compresser un répertoire en 7z
compressor.compress_7z("mon_dossier/", "archive.7z")

Exemple

import compressor
import os

# Créer une structure de répertoires de test
os.makedirs("dossier_test/sous_dossier", exist_ok=True)
with open("dossier_test/fichier1.txt", "w") as f:
    f.write("Bonjour le monde")
with open("dossier_test/sous_dossier/fichier2.txt", "w") as f:
    f.write("Fichier imbriqué")

# Compresser le répertoire entier
compressor.compress_zip("dossier_test/", "sortie.zip")
print("✓ Répertoire compressé avec succès !")

# Fonctionne avec tous les sous-répertoires et fichiers
compressor.compress_gz("dossier_test/", "sortie.tar.gz")
compressor.compress_7z("dossier_test/", "sortie.7z")

Comparaison des formats

Format Extension Compression Vitesse Cas d'usage
tar.gz .tar.gz Bonne Rapide Standard Unix/Linux
tar.zlib .tar.zlib Bonne Rapide Alternative à gzip
ZIP .zip Bonne Rapide Universel, compatible Windows
7z .7z Excellente Plus lent Compression maximale

Référence API

compress_gz(repertoire_entree, fichier_sortie)

Compresse un répertoire au format tar.gz.

  • repertoire_entree (str) : Chemin du répertoire à compresser
  • fichier_sortie (str) : Chemin du fichier .tar.gz de sortie
  • Retourne : None
  • Lève : IOError en cas d'échec

compress_zlib(repertoire_entree, fichier_sortie)

Compresse un répertoire au format tar.zlib.

  • repertoire_entree (str) : Chemin du répertoire à compresser
  • fichier_sortie (str) : Chemin du fichier .tar.zlib de sortie
  • Retourne : None
  • Lève : IOError en cas d'échec

compress_zip(repertoire_entree, fichier_sortie)

Compresse un répertoire au format ZIP.

  • repertoire_entree (str) : Chemin du répertoire à compresser
  • fichier_sortie (str) : Chemin du fichier .zip de sortie
  • Retourne : None
  • Lève : IOError en cas d'échec

compress_7z(repertoire_entree, fichier_sortie)

Compresse un répertoire au format 7z.

  • repertoire_entree (str) : Chemin du répertoire à compresser
  • fichier_sortie (str) : Chemin du fichier .7z de sortie
  • Retourne : None
  • Lève : IOError en cas d'échec

Prérequis

  • Python >= 3.8

Performance

Compressor utilise Rust pour les opérations critiques en termes de performance, le rendant significativement plus rapide que les implémentations Python pures pour les grands répertoires.

Exemple de benchmark (1000 fichiers, ~100 Mo) :

  • compressor (Rust) : ~0,8s
  • zipfile (Python) : ~2,3s
  • tarfile (Python) : ~1,9s

Les résultats peuvent varier selon le matériel et les types de fichiers

Licence

Licence MIT

Contribution

Les contributions sont les bienvenues ! C'est un projet simple axé sur la compression rapide de répertoires.

Dépannage

Erreurs de compilation

Assurez-vous d'avoir Rust installé :

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Erreurs d'import

Après l'installation, si import compressor échoue, essayez de réinstaller :

pip uninstall compressor
maturin develop --release

Historique des versions

Version 0.1.0

  • Version initiale
  • Support des formats tar.gz, tar.zlib, zip, 7z
  • Compression récursive de répertoires
  • Implémentation Rust rapide

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

compressor_rs-0.1.0.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

compressor_rs-0.1.0-cp38-abi3-win_amd64.whl (483.0 kB view details)

Uploaded CPython 3.8+Windows x86-64

File details

Details for the file compressor_rs-0.1.0.tar.gz.

File metadata

  • Download URL: compressor_rs-0.1.0.tar.gz
  • Upload date:
  • Size: 13.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.11.5

File hashes

Hashes for compressor_rs-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4dd4a73bc66de18326dd3245432f695381e394c4864ef8bf6784092bb05a77c8
MD5 6390b0e6c9c075294ba7476f24bf7243
BLAKE2b-256 8b2a5ba04396faa6f10329b31e48b1d66957fe0d27e0502922ddbe863c700a63

See more details on using hashes here.

File details

Details for the file compressor_rs-0.1.0-cp38-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for compressor_rs-0.1.0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e8cfe2167b77fcb51a4e31a27d9f007ca21c522e46d638ed4949e01a63914fe7
MD5 52236cba8141190b0ee21b8df70c733c
BLAKE2b-256 adb60772e30a4d47893dc74002be6fa53cf078121941bba04dd6f1544c20c19e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page