{"id":26282297,"url":"https://github.com/mozillasecurity/corpus-replicator","last_synced_at":"2025-05-07T08:14:24.362Z","repository":{"id":176674462,"uuid":"653367591","full_name":"MozillaSecurity/corpus-replicator","owner":"MozillaSecurity","description":"A corpus generation tool","archived":false,"fork":false,"pushed_at":"2025-03-26T17:11:24.000Z","size":43,"stargazers_count":22,"open_issues_count":1,"forks_count":3,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-05-07T08:14:18.210Z","etag":null,"topics":["corpus","fuzzing","media","test"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MozillaSecurity.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-13T23:32:39.000Z","updated_at":"2025-04-26T00:05:00.000Z","dependencies_parsed_at":"2025-03-14T16:40:44.959Z","dependency_job_id":"7bcfded3-455a-4243-b855-75c4e2cbd777","html_url":"https://github.com/MozillaSecurity/corpus-replicator","commit_stats":null,"previous_names":["mozillasecurity/corpus-replicator"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MozillaSecurity%2Fcorpus-replicator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MozillaSecurity%2Fcorpus-replicator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MozillaSecurity%2Fcorpus-replicator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MozillaSecurity%2Fcorpus-replicator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MozillaSecurity","download_url":"https://codeload.github.com/MozillaSecurity/corpus-replicator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252839296,"owners_count":21812089,"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":["corpus","fuzzing","media","test"],"created_at":"2025-03-14T16:40:34.012Z","updated_at":"2025-05-07T08:14:24.066Z","avatar_url":"https://github.com/MozillaSecurity.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Corpus Replicator\n=================\n[![Task Status](https://community-tc.services.mozilla.com/api/github/v1/repository/MozillaSecurity/corpus-replicator/main/badge.svg)](https://community-tc.services.mozilla.com/api/github/v1/repository/MozillaSecurity/corpus-replicator/main/latest)\n[![Matrix](https://img.shields.io/badge/chat-%23fuzzing-green?logo=matrix)](https://matrix.to/#/#fuzzing:mozilla.org)\n[![PyPI](https://img.shields.io/pypi/v/corpus-replicator)](https://pypi.org/project/corpus-replicator)\n\nCorpus Replicator is a corpus generation tool that enables the creation of multiple\nunique output files based on templates. The primary intended use case is the\ncreation of a seed corpus that can be used by fuzzers. Support for additional output\nformats can be added via the creation of `Recipes`. If a desired format is unsupported,\nsupport can be added via the creation of a `CorpusGenerator`.\n\nThe goal is to create an efficient corpus that maximizes code coverage and minimizes\nfile size. Small unique files that execute quickly are preferred.\n\nCurrently four media types can be generated `animation`, `audio`, `image` and\n`video`.\n\nRequirements\n------------\n\nCorpus Replicator relies on [FFmpeg](https://ffmpeg.org/).\n\nInstallation\n------------\n```\npip install corpus-replicator\n```\n\nExample\n-------\n\nThis is an example `recipe` file.\n\n```yaml\n# \"base\" contains required entries and default flags\nbase:\n  codec: \"h264\"       # name of the codec\n  container: \"mp4\"    # container/file extension\n  library: \"libx264\"  # name of library\n  medium: \"video\"     # supported medium\n  tool: \"ffmpeg\"      # name of supported tool\n  default_flags:\n    encoder:          # \"encoder\" flag group\n      [\"-c:v\", \"libx264\"]\n    resolution:       # \"resolution\" flag group\n      [\"-s\", \"320x240\"]\n\n# variations allow flags to be added and overwritten\n# one file will be generated for each entry in a flag group\nvariation:\n  resolution:         # flag group - overwrites default flag group in \"base\"\n  - [\"-s\", \"640x480\"]\n  - [\"-s\", \"32x18\"]\n  - [\"-s\", \"64x64\"]\n  monochrome:         # flag group - adds new flag group\n  - [\"-vf\", \"hue=s=0\"]\n```\n\nRunning the recipe will generate a corpus:\n```\n$ corpus-replicator example.yml video -t test\nGenerating templates...\n1 recipe(s) will be used with 1 template(s) to create 4 file(s).\nGenerating 4 'video/libx264/h264/mp4' file(s) using template 'test'...\nOptimizing corpus, checking for duplicates...\nDone.\n```\n\nResulting corpus:\n```\n$ ls generated-corpus/\nvideo-h264-libx264-test-monochrome-00.mp4\nvideo-h264-libx264-test-resolution-01.mp4\nvideo-h264-libx264-test-resolution-00.mp4\nvideo-h264-libx264-test-resolution-02.mp4\n```\n\nA more complex corpus can be generated by using multiple `Recipes` and `Templates` at\nonce.\n\nRecipes are stored in [src/corpus_replicator/recipes](/src/corpus_replicator/recipes/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmozillasecurity%2Fcorpus-replicator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmozillasecurity%2Fcorpus-replicator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmozillasecurity%2Fcorpus-replicator/lists"}