{"id":39548222,"url":"https://github.com/smallrye/jdk-classfile-backport","last_synced_at":"2026-01-18T06:50:00.868Z","repository":{"id":183543602,"uuid":"670276139","full_name":"smallrye/jdk-classfile-backport","owner":"smallrye","description":"An unofficial backport of the JDK Classfile API to Java 17","archived":false,"fork":false,"pushed_at":"2026-01-16T22:58:23.000Z","size":1802,"stargazers_count":40,"open_issues_count":2,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-17T11:21:09.188Z","etag":null,"topics":["class-generator","classfile","classfile-parser","classfile-structure","jvms"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smallrye.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-07-24T17:21:37.000Z","updated_at":"2026-01-16T22:18:15.000Z","dependencies_parsed_at":"2023-07-24T21:53:48.280Z","dependency_job_id":"5a42431e-6c45-4ac7-b244-ffd0dfe9408f","html_url":"https://github.com/smallrye/jdk-classfile-backport","commit_stats":{"total_commits":135,"total_committers":2,"mean_commits":67.5,"dds":"0.37777777777777777","last_synced_commit":"ea6454049e03741e1964da88e1856c7b7e5efd8a"},"previous_names":["dmlloyd/jdk-classfile-preview","dmlloyd/jdk-classfile-backport","smallrye/jdk-classfile-backport"],"tags_count":33,"template":false,"template_full_name":null,"purl":"pkg:github/smallrye/jdk-classfile-backport","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smallrye%2Fjdk-classfile-backport","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smallrye%2Fjdk-classfile-backport/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smallrye%2Fjdk-classfile-backport/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smallrye%2Fjdk-classfile-backport/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smallrye","download_url":"https://codeload.github.com/smallrye/jdk-classfile-backport/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smallrye%2Fjdk-classfile-backport/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28532056,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"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":["class-generator","classfile","classfile-parser","classfile-structure","jvms"],"created_at":"2026-01-18T06:50:00.285Z","updated_at":"2026-01-18T06:50:00.765Z","avatar_url":"https://github.com/smallrye.png","language":"Java","readme":"Unofficial JDK Classfile API Backport\n========\n\n[![Maven Central](https://img.shields.io/maven-central/v/io.smallrye.classfile/jdk-classfile-backport?color=green)](https://search.maven.org/search?q=g:io.smallrye.classfile%20AND%20a:jdk-classfile-backport)\n\nThis is a backport to JDK 17 of the new classfile API found in JDK 21 and later.\n\nBugs in this project should be reported to [the GitHub issue tracker](https://github.com/smallrye/jdk-classfile-backport/issues) first. Bugs in this project are likely to be a result of backporting. Some bugs might be relayed upstream by the project maintainer(s), subject to testing and verification; in this case, the upstream bug will be linked for easier tracking.\n\nRelocation notice\n-----------------\n\nThis project has been relocated from old to new Maven coordinates, and also has a new package name, as of version 26.\n\nPlease use the new Maven coordinates in your dependency declaration:\n\n```xml\n    \u003cdependency\u003e\n        \u003cgroupId\u003eio.smallrye.classfile\u003c/groupId\u003e\n        \u003cartifactId\u003ejdk-classfile-backport\u003c/artifactId\u003e\n    \u003c/dependency\u003e\n```\n\nThe classfile API now has a base package name of `io.smallrye.classfile`. Generally it is sufficient to search-and-replace the old package name (`io.github.dmlloyd.classfile`) in your projects to use the new API version.\n\nReleases\n--------\n\nReleases of the project roughly track releases of the corresponding JDK from which it is backported. This means that version 24.x of this project corresponds to the state of the upstream classfile API in JDK 24, and so on.\n\nBinary compatibility is maintained with a strictness corresponding to that of the upstream API.\n\nIt is currently planned to continue to backport features indefinitely. The major version of this project will continue to correspond to the JDK from which the changes were backported. When planning a transition from this library to the official API, be sure that the major version of this library corresponds to the target JDK to avoid a situation where you start using features which are not available in the JDK version you want to target, causing difficulties when migrating.\n\nThe release schedule is fairly ad-hoc and irregular, but will generally align with that of the upstream JDK. If you encounter a bug which has been fixed in this project but not yet released, feel free to open an issue to request a release.\n\nGetting started\n---------------\n\nAfter adding the appropriate Maven dependency (see the Maven release badge above), the easiest entry points are:\n\nFor parsing a class:\n\n```java\nbyte[] b = Files.readAllBytes(Path.of(\"some/file.class\"));\nClassModel model = ClassFile.of().parse(b);\n// now, do something with `model`...\n```\n\nOr for writing a class:\n\n```java\nbyte[] b = ClassFile.of().build(classDesc, classBuilder -\u003e {\n    // ... build the class here ...\n});\n```\nMore information\n----------------\n\nFor more information on this API, see:\n\n* [JEP 484](https://openjdk.org/jeps/484)\n* [The official upstream documentation at Oracle](https://docs.oracle.com/en/java/javase/24/docs/api/java.base/java/lang/classfile/package-summary.html)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmallrye%2Fjdk-classfile-backport","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmallrye%2Fjdk-classfile-backport","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmallrye%2Fjdk-classfile-backport/lists"}