{"id":19527339,"url":"https://github.com/papermc/restamp","last_synced_at":"2025-07-29T22:17:45.051Z","repository":{"id":200595738,"uuid":"705886507","full_name":"PaperMC/restamp","owner":"PaperMC","description":"Apply access transformers to closed/forked source files","archived":false,"fork":false,"pushed_at":"2024-12-15T20:31:50.000Z","size":166,"stargazers_count":4,"open_issues_count":3,"forks_count":1,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-04-10T03:34:47.331Z","etag":null,"topics":["java"],"latest_commit_sha":null,"homepage":"","language":"Java","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/PaperMC.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},"funding":{"github":"PaperMC","open_collective":"PaperMC"}},"created_at":"2023-10-16T22:18:53.000Z","updated_at":"2025-04-04T03:35:28.000Z","dependencies_parsed_at":"2023-10-17T10:32:20.262Z","dependency_job_id":"35644f05-c73b-4bdd-9bc8-494de0754b3f","html_url":"https://github.com/PaperMC/restamp","commit_stats":{"total_commits":20,"total_committers":3,"mean_commits":6.666666666666667,"dds":"0.44999999999999996","last_synced_commit":"db64fff9f9f89e0fd7dacf8ef791b994344dcb4b"},"previous_names":["lynxplay/restamp"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaperMC%2Frestamp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaperMC%2Frestamp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaperMC%2Frestamp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaperMC%2Frestamp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PaperMC","download_url":"https://codeload.github.com/PaperMC/restamp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249205853,"owners_count":21230007,"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":["java"],"created_at":"2024-11-11T01:14:39.755Z","updated_at":"2025-04-16T05:57:55.328Z","avatar_url":"https://github.com/PaperMC.png","language":"Java","readme":"# restamp\n\nRestamp is a library for applying access transformers to java source code files.\n\n## Overview\n\nRestamp can be used to apply [access transformers](https://github.com/MinecraftForge/AccessTransformers) to closed/forked projects, enabling\ndevelopers to access fields, methods and classes in the project that were previously not accessible.\n\n## Installation \u0026 Usage\n\n\u003e For both library and cli usage it is important that a full classpath of the project is supplied to the project.\n\u003e This includes a jar of the project itself if only a subset of its classes are read/parsed by restamp (which is almost always the case).\n\n### As a library\n#### Gradle (Kotlin DSL)\n```kotlin\nrepositories {\n    maven(\"https://repo.papermc.io/repository/maven-public/\")\n}\n\ndependencies {\n    compileOnly(\"io.papermc.restamp:restamp:1.1.0\")\n}\n\njava {\n    toolchain.languageVersion.set(JavaLanguageVersion.of(17))\n}\n```\n#### Maven\n```xml\n\u003crepository\u003e\n    \u003cid\u003epapermc\u003c/id\u003e\n    \u003curl\u003ehttps://repo.papermc.io/repository/maven-public/\u003c/url\u003e\n\u003c/repository\u003e\n```\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eio.papermc.restamp\u003c/groupId\u003e\n    \u003cartifactId\u003erestamp\u003c/artifactId\u003e\n    \u003cversion\u003e1.1.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nYou may use restamp by first constructing a `RestampContextConfiguration` via its builder:\n\n```java\nRestampContextConfiguration.builder()\n    .accessTransformers(Path.of(\"/path/to/the/at/file\"))\n    [...]\n    .build();\n```\n\nThe configuration may then be parsed into the **inputs** to restamp via `RestampInput.parseFrom(contextConfiguration)`.\nThis process parses the java source files as specified in the context configuration. As such it is not a cheap process and\nshould be called as few times as possible.\n\nAfter constructing inputs, **restamp** can be executed using `Restamp.run(inputs)`, yielding back the changeset of all applied access transformers\nfor further usage by your jvm-based project.\n\n### As a CLI\n\nYou can download the cli from the GitHub Releases page or you can build it with `./gradlew build` which produces the cli in\n`restamp-cli/build/libs/restamp-cli-*-final.jar`.\n\nMore information on the CLI's expected parameters can be found via the `--help` flag.\nA sample execution may look like this:\n\n```shell\njava -jar restamp.jar \\\n  -cp \"lib/guava.jar;lib/joml.jar;[...]\" \\\n  --source-path src/main/java \\\n  -at at.at\n```\n\nwhich applies all access transformers found in the `at.at` file to the relevant sources found under `src/main/java` while using\nall classes found in the jars supposed to `-cp` as a semicolon separated array.\n","funding_links":["https://github.com/sponsors/PaperMC","https://opencollective.com/PaperMC"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpapermc%2Frestamp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpapermc%2Frestamp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpapermc%2Frestamp/lists"}