MINIZ : compresseur Zlib ultra compact et portable

8 sujets de 1 à 8 (sur un total de 8)

  • Anonyme

      #244232

      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) :

      https://code.google.com/p/miniz/

      Anonyme

        #244249

        Je n’y connais rien en C etc… mais effectivement et effectivement c’est COOL.

        AmiDARK

          #244254

          Sympa, on pourrait peut-être (en respectant la licence bien sûr), en faire un .a pour AmigaOS4 🙂 ou une .library pour os 3.x 🙂
          (Pour MorphOS il est probablement possible de l’utiliser aussi)

          AmiDARK

            #244268

            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 ?

            zzd10h

              #244269

              @Astrofra

              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 2

              Comment 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.

              Anonyme

                #244272

                @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.

                zzd10h

                  #244290

                  @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/OS4

                  Anonyme

                    #244435

                    Ah, 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

                  Amiga Impact