MINIZ : compresseur Zlib ultra compact et portable
8 sujets de 1 à 8 (sur un total de 8)
-
Salut,
en cherchant une routine de décompression pour ma prochaine démo, je suis tombé sur le source C de MINIZ écrit par Rich Geldreich.
Il s’agit d’un compresseur compatible Zlib (utilisé par le ZIP ou le PNG) qui est à la fois :
– ultra compact. le source tiens en un seul fichier
– ultra portable. son auteur l’a écrit pour des CPUs little et big-endian, 32 et 64 bits.J’ai pu le compiler avec le bon vieux SAS/C, en un seul double-clic, sans faire la moindre modif. Je trouve ça vraiment beau qu’un développeur (ex-dev de chez Valve, d’ailleurs), produise du code pour Intel 64bits qui compile et tourne direct sur un vieux 68000.
Voila, l’url, si ça interesse qqun (la licence est assez souple) :
Je n’y connais rien en C etc… mais effectivement et effectivement c’est COOL.
Apparemment c’est devenu domaine public ?
Completely free: Public domain in jurisdictions that recognize copyright laws, with a license patterned after the public domain SQLite project, see unlicense.org.Non ?
j’ai essayé vite fait de compiler après un svn checkout avec cmake sur OS4.
/RAM Disk/miniz-read-only/build> make
Linking C executable ../bin_linux/example1
CMakeFiles/example1.dir/example1.c.obj: In function `mz_zip_writer_init_from_reader’:
example1.c:(.text+0x51f0): undefined reference to `freopen64′
CMakeFiles/example1.dir/example1.c.obj: In function `mz_zip_add_mem_to_archive_file_in_place’:
example1.c:(.text+0xd2e0): undefined reference to `freopen64′
gmake[2]: *** [../bin_linux/example1] Error 1
gmake[1]: *** [CMakeFiles/example1.dir/all] Error 2
bin:gmake: *** [all] Error 2Comment as-tu fait pour ce freopen64 ? Même en virant tout ce qui est support « LARGEFILE » dans le link.txt, pas mieux.
Merci
edit : je viens de voir « Initial BUILD_X64=ON » lors du cmake. Je vais essayer de virer ce BUILD_X64 plus tard.
@zz : toutes mes confuses, j’ai oublié de préciser que je n’avais recompilé que Tinfl.C côté Amiga :
https://code.google.com/p/miniz/source/browse/trunk/tinfl.c
Sur PC j’ai recompilé le projet complet pour pouvoir compresser les fichiers de ma démo.
@Astrofra
Pas de pb 😉En effet, la solution était bien de mettre le bouzin en 32 bits.
Après qq autres modifs pour des includes inexistant et une fonction qui n’existe pas sous OS4, le projet complet compile 🙂Je mettrais ça sur os4depot.
Par contre, pas vraiment de différence de ratio de compression avec zip/OS4.
Pour le même fichier binaire, 67,24% pour miniz et 63,70% pour zip/OS4Ah, cool!
Concernant le ratio de compression, je ne sais pas si c’est le but premier de cette lib. Ce que j’ai compris c’est qu’il voulait proposer un compresseur/décompresseur compatible Zlib avec un source compact mais qui ne soit pas soumis à la licence OpenSource « Zlib ».
Cela dit, tu peux (tu devrais?), envoyer un mail à l’auteur.
Je l’ai fait au tout début du projet, il était content d’apprendre que son code marchait sur Amiga.
Son mail est ici : https://code.google.com/p/miniz/source/browse/trunk/miniz.c#3(tu l’as peut être déjà fait?)
8 sujets de 1 à 8 (sur un total de 8)
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Développement › MINIZ : compresseur Zlib ultra compact et portable