{"id":19915051,"url":"https://github.com/megyssstaa/jminima","last_synced_at":"2025-09-19T02:32:56.630Z","repository":{"id":131062376,"uuid":"373246631","full_name":"MeGysssTaa/jminima","owner":"MeGysssTaa","description":"Minimalistic declarative JVM instrumentation library on top of ASM","archived":false,"fork":false,"pushed_at":"2021-07-03T13:01:44.000Z","size":112,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-11-12T21:42:39.858Z","etag":null,"topics":["api","asm","bytecode","bytecode-instrumentation","bytecode-manipulation","declarative","declarative-programming","java","java-asm","jvm","jvm-bytecode","library"],"latest_commit_sha":null,"homepage":"","language":"Java","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/MeGysssTaa.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":"2021-06-02T17:11:50.000Z","updated_at":"2023-07-22T14:08:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"efe0e2ef-8645-4631-a787-c1a4102bf56a","html_url":"https://github.com/MeGysssTaa/jminima","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeGysssTaa%2Fjminima","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeGysssTaa%2Fjminima/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeGysssTaa%2Fjminima/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeGysssTaa%2Fjminima/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MeGysssTaa","download_url":"https://codeload.github.com/MeGysssTaa/jminima/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233546684,"owners_count":18692260,"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":["api","asm","bytecode","bytecode-instrumentation","bytecode-manipulation","declarative","declarative-programming","java","java-asm","jvm","jvm-bytecode","library"],"created_at":"2024-11-12T21:38:13.813Z","updated_at":"2025-09-19T02:32:51.319Z","avatar_url":"https://github.com/MeGysssTaa.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JMinima\r\n\r\n\r\n**JMinima** is a lightweight Java (JVM) bytecode instrumentation (assembling/disassembling/manipulation/analysis) library written on top of [**ASM**](https://asm.ow2.io/). **JMinima** attempts to encourage *declarative* style of programming to make various bytecode instrumentation routines shorter, more concise, and easier to write and understand. That is, instead of writing *\"create variable X with value Y, then check if Z, ...\"* you're just doing *\"I want a class with the following parameters to be assembled and injected: ...\"*.\r\n\r\n\r\n\r\n\r\n# Before installing\r\n\r\n\r\n**JMinima** requires two other libraries to work: [**Apache Commons IO**](https://commons.apache.org/proper/commons-io/) and [**ASM**](https://asm.ow2.io/). However, **JMinima** is *not* shipped with these libraries inside. You have to add them in your project build script yourself.\r\n\r\n\r\nThat is, if you are writing another library based on **JMinima**, you should install both **JMinima** and the libraries above as *compile-time* dependencies. Otherwise, if you're building a complete runnable application based on **JMinima**, make sure to install all the libraries as *run-time* dependencies.\r\n\r\n\r\nNote that you can use other versions of these libraries as well (not just the one specified in the installation instructions below). However, make sure that the version you are using is not *too* old — otherwise certain features might not be available. If something is not working as expected, please first try to use the exact versions of libraries that **JMinima** has been built against (you can find this information in installation instructions below).\r\n\r\n\r\n\r\n\r\n# Installation (Gradle)\r\n\r\n\r\n```groovy\r\nrepositories {\r\n    mavenCentral()\r\n\r\n    maven {\r\n        name 'Public Reflex Repository'\r\n        url 'https://archiva.reflex.rip/repository/public/'\r\n    }\r\n}\r\n\r\ndef asmVersion = '9.1'\r\n\r\ndependencies {\r\n    implementation group: 'commons-io', name: 'commons-io', version: '2.8.0'\r\n    implementation group: 'org.ow2.asm', name: 'asm', version: \"${asmVersion}\"\r\n    implementation group: 'org.ow2.asm', name: 'asm-util', version: \"${asmVersion}\"\r\n    implementation group: 'me.darksidecode.jminima', name: 'jminima', version: '1.4.0'\r\n}\r\n```\r\n\r\n\r\n\r\n\r\n# Installation (Maven)\r\n\r\n```xml\r\n\u003crepositories\u003e\r\n    \u003crepository\u003e\r\n        \u003cid\u003ereflex.public\u003c/id\u003e\r\n        \u003cname\u003ePublic Reflex Repository\u003c/name\u003e\r\n        \u003curl\u003ehttps://archiva.reflex.rip/repository/public/\u003c/url\u003e\r\n    \u003c/repository\u003e\r\n\u003c/repositories\u003e\r\n\r\n\u003cdependencies\u003e\r\n      \u003cdependency\u003e\r\n        \u003cgroupId\u003ecommons-io\u003c/groupId\u003e\r\n        \u003cartifactId\u003ecommons-io\u003c/artifactId\u003e\r\n        \u003cversion\u003e2.8.0\u003c/version\u003e\r\n    \u003c/dependency\u003e\r\n    \u003cdependency\u003e\r\n        \u003cgroupId\u003eorg.ow2.asm\u003c/groupId\u003e\r\n        \u003cartifactId\u003easm\u003c/artifactId\u003e\r\n        \u003cversion\u003e9.1\u003c/version\u003e\r\n    \u003c/dependency\u003e\r\n  \u003cdependency\u003e\r\n        \u003cgroupId\u003eorg.ow2.asm\u003c/groupId\u003e\r\n        \u003cartifactId\u003easm-util\u003c/artifactId\u003e\r\n        \u003cversion\u003e9.1\u003c/version\u003e\r\n    \u003c/dependency\u003e\r\n    \u003cdependency\u003e\r\n        \u003cgroupId\u003eme.darksidecode.jminima\u003c/groupId\u003e\r\n        \u003cartifactId\u003ejminima\u003c/artifactId\u003e\r\n        \u003cversion\u003e1.4.0\u003c/version\u003e\r\n    \u003c/dependency\u003e\r\n\u003c/dependencies\u003e\r\n```\r\n\r\n\r\n\r\n\r\n# License\r\n\r\n[**Apache License 2.0**](https://github.com/MeGysssTaa/jminima/blob/main/LICENSE)\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmegyssstaa%2Fjminima","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmegyssstaa%2Fjminima","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmegyssstaa%2Fjminima/lists"}