{"id":13636714,"url":"https://github.com/zopfli-rs/zopfli","last_synced_at":"2025-12-12T15:41:21.449Z","repository":{"id":42676006,"uuid":"466333626","full_name":"zopfli-rs/zopfli","owner":"zopfli-rs","description":" A Rust implementation of the Zopfli compression algorithm. ","archived":false,"fork":false,"pushed_at":"2024-11-03T02:56:28.000Z","size":2512,"stargazers_count":36,"open_issues_count":5,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-11-03T03:19:32.265Z","etag":null,"topics":["hacktoberfest","rust","zopfli"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/zopfli-rs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","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":"2022-03-05T03:01:53.000Z","updated_at":"2024-11-03T02:36:34.000Z","dependencies_parsed_at":"2023-02-17T08:31:18.480Z","dependency_job_id":"be5d75f1-69b1-42fe-ac9a-957ead992e22","html_url":"https://github.com/zopfli-rs/zopfli","commit_stats":{"total_commits":618,"total_committers":27,"mean_commits":22.88888888888889,"dds":"0.25889967637540456","last_synced_commit":"b94eaeffab8d1ffc83b4548df8aa9a94867c5846"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopfli-rs%2Fzopfli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopfli-rs%2Fzopfli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopfli-rs%2Fzopfli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopfli-rs%2Fzopfli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zopfli-rs","download_url":"https://codeload.github.com/zopfli-rs/zopfli/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223795250,"owners_count":17204136,"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":["hacktoberfest","rust","zopfli"],"created_at":"2024-08-02T00:01:04.393Z","updated_at":"2025-12-12T15:41:21.443Z","avatar_url":"https://github.com/zopfli-rs.png","language":"Rust","funding_links":[],"categories":["Libraries","库 Libraries"],"sub_categories":["Compression","压缩 Compression"],"readme":"\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://avatars.githubusercontent.com/u/100982154?s=200\u0026v=4\" alt=\"Zopfli in Rust logo\"\u003e\n\u003ch1\u003eZopfli in Rust\u003c/h1\u003e\n\n\u003ca href=\"https://crates.io/crates/zopfli\"\u003e\u003cimg alt=\"crates.io latest version\" src=\"https://img.shields.io/crates/v/zopfli\"\u003e\u003c/a\u003e\n\u003ca href=\"https://docs.rs/zopfli\"\u003e\u003cimg alt=\"docs.rs status\" src=\"https://img.shields.io/docsrs/zopfli?label=docs.rs\"\u003e\u003c/a\u003e\n\u003c/div\u003e\n\nThis is a reimplementation of the [Zopfli](https://github.com/google/zopfli) compression tool in Rust.\n\nCarol Nichols started the Rust implementation as an experiment in incrementally rewriting a C library in Rust, keeping the project compiling at every step. For more information about that experiment, see [the slides for a talk she gave about it](https://github.com/carols10cents/rust-out-your-c-talk) and [the repo as it was for the experiment](https://github.com/carols10cents/zopfli).\n\nThe minimum supported Rust version (MSRV) for this crate is 1.82. Bumping this version is not considered a breaking change for semantic versioning purposes. We will try to do it only when we estimate that such a bump would not cause widespread inconvenience or breakage.\n\n## How to build\n\nTo build the code, run:\n\n```\n$ cargo build --release\n```\n\nand the executable will be in `target/release/zopfli`.\n\nThis should work on stable or beta Rust.\n\n## Running the tests\n\nThere are some unit tests, mostly around the boundary package merge algorithm implementation in katajainen.rs, and a property-based test for compression reversibility. These tests can be run with:\n\n```\n$ cargo test\n```\n\nGolden master tests, to check that compressed files are exactly the same as the C implementation would generate, can be run using:\n\n```\n$ ./test/run.sh\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzopfli-rs%2Fzopfli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzopfli-rs%2Fzopfli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzopfli-rs%2Fzopfli/lists"}