{"id":21327354,"url":"https://github.com/wanadev/pyguetzli","last_synced_at":"2025-04-06T08:11:45.635Z","repository":{"id":37413015,"uuid":"90177011","full_name":"wanadev/pyguetzli","owner":"wanadev","description":"Python bindings for Google's Guetzli, a JPEG encoder that optimises JPEG compression","archived":false,"fork":false,"pushed_at":"2025-03-17T12:42:48.000Z","size":6859,"stargazers_count":43,"open_issues_count":0,"forks_count":2,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-30T07:11:12.478Z","etag":null,"topics":["binding","guetzli","jpeg","jpeg-encoder","python"],"latest_commit_sha":null,"homepage":"https://wanadev.github.io/pyguetzli/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wanadev.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"docs/contributing.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-05-03T17:46:37.000Z","updated_at":"2025-03-17T12:42:46.000Z","dependencies_parsed_at":"2024-08-05T15:30:27.837Z","dependency_job_id":"acae4931-5857-46ec-a633-80fc37b9232d","html_url":"https://github.com/wanadev/pyguetzli","commit_stats":{"total_commits":116,"total_committers":4,"mean_commits":29.0,"dds":0.09482758620689657,"last_synced_commit":"a7ddbebf41da49c07adfbf306a1e6ae30d8299b5"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wanadev%2Fpyguetzli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wanadev%2Fpyguetzli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wanadev%2Fpyguetzli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wanadev%2Fpyguetzli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wanadev","download_url":"https://codeload.github.com/wanadev/pyguetzli/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247451654,"owners_count":20940939,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["binding","guetzli","jpeg","jpeg-encoder","python"],"created_at":"2024-11-21T21:16:56.180Z","updated_at":"2025-04-06T08:11:45.613Z","avatar_url":"https://github.com/wanadev.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"PyGuetzli\n=========\n\n|Github| |Discord| |PYPI Version| |Build Status| |License|\n\n**PyGuetzli** is a Python binding for Google’s\n`Guetzli \u003chttps://github.com/google/guetzli\u003e`__ library.\n\nDescription of **Guetzli** from official’s repo:\n\n   Guetzli is a JPEG encoder that aims for excellent compression density\n   at high visual quality. Guetzli-generated images are typically 20-30%\n   smaller than images of equivalent quality generated by libjpeg.\n   Guetzli generates only sequential (nonprogressive) JPEGs due to\n   faster decompression speeds they offer.\n\n\nDocumentation\n-------------\n\n* `Installation \u003chttps://wanadev.github.io/pyguetzli/install.html\u003e`_\n* `Guetzli Python Module \u003chttps://wanadev.github.io/pyguetzli/guetzli.html\u003e`_\n* `Using with PIL / Pillow images \u003chttps://wanadev.github.io/pyguetzli/pil_image.html\u003e`_\n* `Contributing / Reporting a bug \u003chttps://wanadev.github.io/pyguetzli/contributing.html\u003e`_\n\nMore topics at https://wanadev.github.io/pyguetzli/\n\n\nUsage Example\n-------------\n\n.. code-block:: python\n\n   import pyguetzli\n\n   input_jpeg = open(\"./test/image.jpg\", \"rb\").read()\n   optimized_jpeg = pyguetzli.process_jpeg_bytes(input_jpeg)\n\n   output = open(\"./optimized.jpg\", \"wb\")\n   output.write(optimized_jpeg)\n\n\nChangelog\n---------\n\n* **[NEXT]** (changes on ``master`` but not released yet):\n\n  * Nothing yet ;)\n\n* **v1.0.17:**\n\n  * misc(deps): Only pin setuptools version on required platforms (@flozz)\n\n* **v1.0.16:**\n\n  * misc: Added Python 3.13 support (@flozz)\n  * misc!: Removed Python 3.8 support (@flozz)\n\n* **v1.0.15:**\n\n  * misc: Added Python 3.12 support (@flozz)\n  * misc!: Removed Python 3.7 support (@flozz)\n\n* **v1.0.14:**\n\n  * Guetzli: Apply a better patch to fix the crash caused by a bad access to\n    a vector revealed when compiled with \"-D_GLIBCXX_ASSERTIONS\" (David Odin)\n\n* **v1.0.13:**\n\n  * Added Python 3.11 support\n\n* **v1.0.12:**\n\n  * Guetzli: Fixed a crash caused by a bad access to a vector revealed when\n    compiled with \"-D_GLIBCXX_ASSERTIONS\" (David Odin)\n\n* **v1.0.11:**\n\n  * ``arm64`` and ``universal2`` wheels for macOS\n  * ``x86`` and ``x68_64`` wheels for musl-based Linux distro (Alpine,...)\n  * ``win32`` wheels for Windows (``x86_64`` were already available)\n\n* **v1.0.10:** Python 3.10 support and wheels\n* **v1.0.9:** Provides prebuilt wheel packages\n* **v1.0.8:** Updates Guetzli and python dependencies\n* **v1.0.7:** Fixes unicode issue when installing pyguetzli (#4)\n* **v1.0.6:** Fixes a typo in compilator options on unix\n* **v1.0.5:** Adds optimization flags when compiling Guetzli\n* **v1.0.4:** MS Windows support\n* **v1.0.3:** Updates Guetzli library\n* **v1.0.2**: PIL Images: fixes crash with non RGB/RGBA images\n  (grayscale, indexed,…)\n* **v1.0.1**: Adds ``--std=c++11`` flag when building Guetzli\n* **v1.0.0**:\n\n  * New and simpler API\n  * Built-in function to deal with PIL / Pillow Images\n  * Documentation (Sphinx)\n  * Guetzli update\n\n* **v0.9.0**: Initial release\n\n\n.. |Github| image:: https://img.shields.io/github/stars/wanadev/pyguetzli?label=Github\u0026logo=github\n   :target: https://github.com/wanadev/pyguetzli\n.. |Discord| image:: https://img.shields.io/badge/chat-Discord-8c9eff?logo=discord\u0026logoColor=ffffff\n   :target: https://discord.gg/BmUkEdMuFp\n.. |PYPI Version| image:: https://img.shields.io/pypi/v/pyguetzli.svg\n   :target: https://pypi.python.org/pypi/pyguetzli\n.. |Build Status| image:: https://github.com/wanadev/pyguetzli/actions/workflows/python-ci.yml/badge.svg\n   :target: https://github.com/wanadev/pyguetzli/actions\n.. |License| image:: https://img.shields.io/pypi/l/pyguetzli.svg\n   :target: https://github.com/wanadev/pyguetzli/blob/master/LICENSE\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwanadev%2Fpyguetzli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwanadev%2Fpyguetzli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwanadev%2Fpyguetzli/lists"}