{"id":18558996,"url":"https://github.com/linux-china/wukong","last_synced_at":"2025-04-10T01:33:09.313Z","repository":{"id":257775738,"uuid":"850167812","full_name":"linux-china/wukong","owner":"linux-china","description":"Wukong: a command-line toolchain for Java with Rust","archived":false,"fork":false,"pushed_at":"2025-04-01T15:01:52.000Z","size":225,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T02:51:15.698Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/linux-china.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2024-08-31T03:33:45.000Z","updated_at":"2025-04-01T15:01:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"0de5c369-bb73-41b3-a596-35f534ca74b0","html_url":"https://github.com/linux-china/wukong","commit_stats":null,"previous_names":["linux-china/wukong"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linux-china%2Fwukong","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linux-china%2Fwukong/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linux-china%2Fwukong/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linux-china%2Fwukong/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/linux-china","download_url":"https://codeload.github.com/linux-china/wukong/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248140798,"owners_count":21054353,"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":[],"created_at":"2024-11-06T21:41:48.586Z","updated_at":"2025-04-10T01:33:04.293Z","avatar_url":"https://github.com/linux-china.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"Wukong - Java Toolchain with Rust\n====================================\nWukong is a Java toolchain written with Rust.\n\n# Why write Java toolchain with Rust?\n\n- startup time matter: Rust is fast, and Java takes ages to start.\n- No environment dependencies: No need to install JDK, Maven, Gradle, etc.\n- Binary file size matter: small size, easy to distribute. GraalVM native-image is not small enough.\n\n# Get started\n\n- Install: `cargo binstall wukong`. Please run `cargo install cargo-binstall` first.\n- JBang-rs: `~/.cargo/bin/jbang --version`\n- SDKMAN-rs: `~/.cargo/bin/sdk --version`\n- jenv-rs: `~/.cargo/bin/jenv --version`\n- Maven Toolchains: `~/.cargo/bin/mt --version`\n\n# Java Toolchains\n\n- JBang(Java): https://www.jbang.dev/\n- SDKMAN(bash): https://sdkman.io/\n- jenv(bash): https://github.com/jenv/jenv\n- Maven Toolchains CLI: https://maven.apache.org/guides/mini/guide-using-toolchains.html\n\n# SDKMAN-rs\n\nPlease add `eval $(~/.cargo/bin/sdk init)` to your shell profile.\n\n### enhancements\n\n* CI friendly: `sdk install -y java` for auto-install\n* Silent mode: `sdk -q install java`\n* Major version support: `sdk install java 17`, `sdk use java 17`\n\n### Difference\n\n* use version: `eval $(sdk use java 17)`\n\n# Maven Toolchains CLI\n\n- jdks: list all installed JDKs\n- vendors: list all vendors and available JDK versions.\n- list: list JDKs from `~/.m2/toolchains.xml`\n- add: add JDK into `~/.m2/toolchains.xml`\n- remove: remove JDK from `~/.m2/toolchains.xml`\n\n### Add JDK\n\n- list all vendors and jdk versions: `mt vendors`\n- `mt add 21`: add JDK 21 from `$HOME/.jbang/cache/jdks/21`\n- `mt add 17.0.4-tem`: add JDK from `$HOME/.sdk/candidates/java/17.0.4-tem`\n- `mt add /path/to/java-home`: add JDK from `/path/to/java-home`\n\n# direnv integration\n\nIntegration with [direnv](https://direnv.net/) by `sdk direnv init`:\n\n- Java Home: `.java-version`, `.sdkmanrc`\n- Aut candidate home and path for SDKMAN: `.sdkmanrc`\n\n# References\n\n* [SDKMAN CLI](https://github.com/sdkman/sdkman-cli-native): SDKMAN CLI Native with Rust\n* [OneIO](https://github.com/bgpkit/oneio): all-in-one convenient IO library for Rust\n* [startup-time](https://github.com/bdrung/startup-time): Measure startup time of different programming languages\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinux-china%2Fwukong","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinux-china%2Fwukong","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinux-china%2Fwukong/lists"}