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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4dd4a73bc66de18326dd3245432f695381e394c4864ef8bf6784092bb05a77c8
|
|
| MD5 |
6390b0e6c9c075294ba7476f24bf7243
|
|
| BLAKE2b-256 |
8b2a5ba04396faa6f10329b31e48b1d66957fe0d27e0502922ddbe863c700a63
|
File details
Details for the file compressor_rs-0.1.0-cp38-abi3-win_amd64.whl.
File metadata
- Download URL: compressor_rs-0.1.0-cp38-abi3-win_amd64.whl
- Upload date:
- Size: 483.0 kB
- Tags: CPython 3.8+, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8cfe2167b77fcb51a4e31a27d9f007ca21c522e46d638ed4949e01a63914fe7
|
|
| MD5 |
52236cba8141190b0ee21b8df70c733c
|
|
| BLAKE2b-256 |
adb60772e30a4d47893dc74002be6fa53cf078121941bba04dd6f1544c20c19e
|