{"id":30595988,"url":"https://github.com/bentoudev/annotationgenerator","last_synced_at":"2025-08-29T21:09:05.205Z","repository":{"id":117065652,"uuid":"103057681","full_name":"BentouDev/AnnotationGenerator","owner":"BentouDev","description":"Clang based C++ preprocessor for annotation based reflection generation","archived":false,"fork":false,"pushed_at":"2024-12-22T14:15:46.000Z","size":194,"stargazers_count":3,"open_issues_count":7,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-12-22T14:28:34.922Z","etag":null,"topics":["annotation","clang","code-generation","cpp","reflection"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BentouDev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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-09-10T19:58:02.000Z","updated_at":"2024-12-22T14:15:51.000Z","dependencies_parsed_at":"2024-02-25T23:23:51.097Z","dependency_job_id":"1f6cc529-4b76-4f44-a07f-5ce876f24fec","html_url":"https://github.com/BentouDev/AnnotationGenerator","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/BentouDev/AnnotationGenerator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BentouDev%2FAnnotationGenerator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BentouDev%2FAnnotationGenerator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BentouDev%2FAnnotationGenerator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BentouDev%2FAnnotationGenerator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BentouDev","download_url":"https://codeload.github.com/BentouDev/AnnotationGenerator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BentouDev%2FAnnotationGenerator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272765488,"owners_count":24989393,"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","status":"online","status_checked_at":"2025-08-29T02:00:10.610Z","response_time":87,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["annotation","clang","code-generation","cpp","reflection"],"created_at":"2025-08-29T21:09:04.543Z","updated_at":"2025-08-29T21:09:05.192Z","avatar_url":"https://github.com/BentouDev.png","language":"C++","readme":"# AnnotationGenerator\n\nClang based C++ preprocessor for annotation based code generation\n\n### Build status\n\n|Windows|\n|:-------:|\n|[![CI (on push)](https://github.com/BentouDev/AnnotationGenerator/actions/workflows/ci.yml/badge.svg)](https://github.com/BentouDev/AnnotationGenerator/actions/workflows/ci.yml)|\n\n### Usage\n\n```bash\n$ AnnotationGenerator [TEMPLATE] [FILES]...\n$ AnnotationGenerator [TEMPLATE] -i [INPUT_LIST_FILE]\n```\n\nWhere :\n\n- FILES - list of files to parse,\n- TEMPLATE - json configuration file,\n\n``agnes.json``\n```json\n{\n  \"patterns\" : [\n    {\n      \"template\" :[\n        \"template.cpp.mustache\"\n      ],\n      \"file\" : \"(\\\\W|\\\\w)*\\\\.h\\\\b\",\n      \"annotation\" : \"Meta\"\n    }\n  ]\n}\n```\n\n``MyClass.h``\n```cpp\n#define Meta(...) __attribute__((annotate(#__VA_ARGS__)))\nclass Meta(Serialize) MyClass\n{\npublic:\n    Meta(DoNotSerialize)\n    int someField;\n};\n```\n\n``template.cpp.mustache``\n```django\n// Generated file, do not modify!\n#include \"{{header}}.h\"\ntemplate \u003c\u003e void registerReflection\u003c{{class_name}}\u003e()\n{\n    {{#fields}}\n        registerField( {{name}}, \u0026{{{canonical_name}}}::{{name}}, {{access}}, Meta::GetType\u003c{{{type}}}\u003e );\n    {{/fields}}\n};\n```\n\n### Dependencies\n\n- libclang-5.0\n- [nlohmann/json](https://github.com/nlohmann/json) (as conan package)\n- [kainjow/Mustache](https://github.com/kainjow/Mustache) (as conan package)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbentoudev%2Fannotationgenerator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbentoudev%2Fannotationgenerator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbentoudev%2Fannotationgenerator/lists"}