{"id":19547485,"url":"https://github.com/infinite-technology/carburetor","last_synced_at":"2026-06-15T11:31:34.812Z","repository":{"id":125521615,"uuid":"160672449","full_name":"INFINITE-TECHNOLOGY/CARBURETOR","owner":"INFINITE-TECHNOLOGY","description":"Parameterized Groovy AST method Transformer","archived":false,"fork":false,"pushed_at":"2020-02-15T10:44:13.000Z","size":189,"stargazers_count":1,"open_issues_count":4,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-26T06:25:24.889Z","etag":null,"topics":["ast","groovy","groovy-ast"],"latest_commit_sha":null,"homepage":"https://i-t.io/Carburetor/","language":"Groovy","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/INFINITE-TECHNOLOGY.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":"2018-12-06T12:34:43.000Z","updated_at":"2020-02-15T10:44:15.000Z","dependencies_parsed_at":"2023-03-25T19:47:51.600Z","dependency_job_id":null,"html_url":"https://github.com/INFINITE-TECHNOLOGY/CARBURETOR","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/INFINITE-TECHNOLOGY/CARBURETOR","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INFINITE-TECHNOLOGY%2FCARBURETOR","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INFINITE-TECHNOLOGY%2FCARBURETOR/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INFINITE-TECHNOLOGY%2FCARBURETOR/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INFINITE-TECHNOLOGY%2FCARBURETOR/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/INFINITE-TECHNOLOGY","download_url":"https://codeload.github.com/INFINITE-TECHNOLOGY/CARBURETOR/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INFINITE-TECHNOLOGY%2FCARBURETOR/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34358703,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-15T02:00:07.085Z","response_time":63,"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":["ast","groovy","groovy-ast"],"created_at":"2024-11-11T03:50:07.268Z","updated_at":"2026-06-15T11:31:34.794Z","avatar_url":"https://github.com/INFINITE-TECHNOLOGY.png","language":"Groovy","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Infinite Technology ∞ Carburetor 🌀\nParameterized Groovy AST method Transformer\n\n\u003e **`Carburetor`** is a device that mixes air and fuel for internal combustion engines in the proper air–fuel ratio for combustion.\u003cbr/\u003e\n**`@Carburetor`**-based annotations are mixing the auto-generated \"infrastructural\" code with the user code - thus its name.\n\nReferences:\n\n- **[Carburetor documentation](https://github.com/INFINITE-TECHNOLOGY/CARBURETOR/wiki)**\n\n|Attribute\\Release type|Latest|Stable|\n|----------------------|------|------|\n|Version|4.0.0-SNAPSHOT|3.0.x|\n|Branch|[master](https://github.com/INFINITE-TECHNOLOGY/CARBURETOR)|[CARBURETOR_3_0_X](https://github.com/INFINITE-TECHNOLOGY/CARBURETOR/tree/CARBURETOR_3_0_X)|\n|CI Build status|[![Build Status](https://travis-ci.com/INFINITE-TECHNOLOGY/CARBURETOR.svg?branch=master)](https://travis-ci.com/INFINITE-TECHNOLOGY/CARBURETOR)|[![Build Status](https://travis-ci.com/INFINITE-TECHNOLOGY/CARBURETOR.svg?branch=CARBURETOR_3_0_X)](https://travis-ci.com/INFINITE-TECHNOLOGY/CARBURETOR)|\n|Test coverage|[![codecov](https://codecov.io/gh/INFINITE-TECHNOLOGY/CARBURETOR/branch/master/graphs/badge.svg)](https://codecov.io/gh/INFINITE-TECHNOLOGY/CARBURETOR/branch/master/graphs)|[![codecov](https://codecov.io/gh/INFINITE-TECHNOLOGY/CARBURETOR/branch/CARBURETOR_3_0_X/graphs/badge.svg)](https://codecov.io/gh/INFINITE-TECHNOLOGY/CARBURETOR/branch/CARBURETOR_3_0_X/graphs)|\n|Library (Maven)|[oss.jfrog.org snapshot](https://oss.jfrog.org/artifactory/webapp/#/artifacts/browse/tree/General/oss-snapshot-local/io/infinite/carburetor/4.0.0-SNAPSHOT)|[ ![Download](https://api.bintray.com/packages/infinite-technology/io.i-t/carburetor/images/download.svg) ](https://bintray.com/infinite-technology/io.i-t/carburetor/_latestVersion)|\n\n## Purpose\n\n\u003e ❗ `Carburetor` is not an end-user solution. It is a basis for other end-user solutions (such as [Blackbox](https://github.com/INFINITE-TECHNOLOGY/BLACKBOX)) providing compile-time code transformation implementation and a runtime API.\n\nCarburetor provides a foundation for other libraries to automatically generate Groovy Semantic handling code based on Carburetor configuration and inject it into User code during the Compilation stage resulting in a possibility to intercept and interact with application run-time events including their corresponding compile-time metadata (class name, method name, line start, line end, column start, column end, ASTNode class name):\n\n- Method/constructor Start\n- Method Result return\n- Method/constructor End\n- Method/constructor Exception\n- Statement Start\n- Statement Start\n- Statement End\n- Control Statements (return, break, continue, throw)\n- Expression evaluation Start\n- Expression evaluation Result\n- Expression evaluation Exception\n- Expression evaluation End\n\n## In short\n\nCarburetor-based annotations inject a lot of implementation-specific infrastructure code (such as logging, profiling, security, etc) without affecting the user program logic.\n\nGranularity of injected code can be defined by the user (programmer) up to:\n- Method Exceptions handling (exception and causing method arguments are handled)\n- Method invocation handling (method arguments and result are handled)\n- Statement-level handling\n- Expression-level handling\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfinite-technology%2Fcarburetor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finfinite-technology%2Fcarburetor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfinite-technology%2Fcarburetor/lists"}