{"id":16348168,"url":"https://github.com/romainmenke/simple-guetzli","last_synced_at":"2025-03-23T00:33:05.770Z","repository":{"id":57590408,"uuid":"85437468","full_name":"romainmenke/simple-guetzli","owner":"romainmenke","description":"Batch Guetzli compressions in a manageable fashion","archived":false,"fork":false,"pushed_at":"2019-09-08T14:23:23.000Z","size":110,"stargazers_count":15,"open_issues_count":2,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-15T19:43:50.370Z","etag":null,"topics":["batch-processing","compressed","guetzli","jpeg-encoder"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/romainmenke.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-03-18T22:59:20.000Z","updated_at":"2024-10-30T09:01:29.000Z","dependencies_parsed_at":"2022-09-26T19:42:48.832Z","dependency_job_id":null,"html_url":"https://github.com/romainmenke/simple-guetzli","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romainmenke%2Fsimple-guetzli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romainmenke%2Fsimple-guetzli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romainmenke%2Fsimple-guetzli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romainmenke%2Fsimple-guetzli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/romainmenke","download_url":"https://codeload.github.com/romainmenke/simple-guetzli/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244257279,"owners_count":20424130,"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":["batch-processing","compressed","guetzli","jpeg-encoder"],"created_at":"2024-10-11T00:49:38.011Z","updated_at":"2025-03-23T00:33:05.320Z","avatar_url":"https://github.com/romainmenke.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Simple Guetzli\n\nA Guetzli compression helper\n\n`go get github.com/romainmenke/simple-guetzli`\n\nor download from the latest [release](https://github.com/romainmenke/simple-guetzli/releases).\n\nThis requires : [Guetzli](https://github.com/google/guetzli)\n\n---\n\n### Why?\n\nGuetzli is cpu intensive and waiting for builds / compiles /... is something we all like to avoid.\nThis little tool keeps a log of compressed files and skips those that have already been done.\n\nNow you can safely watch a folder with images and compress only that what needs to be done.\n\n\nIn short :\n\n- compresses an entire folder at once\n- executes compressions in parallel\n- tracks what has been compressed\n- determines file changes and recompresses\n\nUseful :\n\n- cancel at any time, finished compressions will not need to be redone.\n- manage max threads.\n- max memory is divided by number of Guetzli instances (so 1000mb ram with 4 threads will give 250mb ram for each)\n- dontgrow flag deletes image files that got bigger because Geutzli failed to shrink them.\n- copy flag to keep your input and output dirs in sync despite Guetzli errors or files that grew.\n\n---\n\n### Options\n\n```\nFlags:\n      --help           Show context-sensitive help (also try --help-long and --help-man).\n  -q, --quality=95     Visual quality to aim for, expressed as a JPEG quality value. Default value is 95.\n      --log=\"info\"     Log level\n  -m, --memlimit=6000  Memory limit in MB. Guetzli will fail if unable to stay under the limit. Default limit is 6000\n      --nomemlimit     Do not limit memory usage.\n  -f, --force          Force recompression\n      --force-quality  Force recompression if quality changed\n  -t, --threads=3      Max concurrent threads. Default limit is 3\n  -g, --dontgrow       Delete compressed files that got bigger\n  -c, --copy           Copy all files from source folder to output, without overwriting compression results\n  -v, --version        Guetzli Version\n\nArgs:\n  [\u003csource\u003e]  Source directory\n  [\u003coutput\u003e]  Output directory\n  [\u003clog\u003e]     Log directory, the log is used to prevent duplicate compressions\n```\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fromainmenke%2Fsimple-guetzli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fromainmenke%2Fsimple-guetzli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fromainmenke%2Fsimple-guetzli/lists"}