rsdk
is a native command-line JVM tool manager.
It is an alternative front-end to the great SDKMAN. It does not require external tools (curl, zip) to be installed.
Rsdk can be installed on Windows, Mac and Linux systems. It integrates with bash, powershell, zsh and fish shells.
Rsdk has limited functionality (no offline mode, etc.) See issues for a list of planned features.
Rsdk is beta quality and may spuriously eat your dog even if you didn't have one.
Installing from source is the only way for now (TODO package managers).
Rsdk is based on a compiled program. Installing from source requires Rust to be installed
git clone https://github.com/fralalonde/rsdk.git
Then from the new rsdk
directory, run the appropriate install script:
Shell | Command |
---|---|
Powershell | .\dev\Install-Module.ps1 |
Bash | . dev/install-bash |
Bash | . dev/install-zsh |
Fish | . dev/install-fish |
Append --debug
to any install script for a debug build - faster compile, better stack traces, slower archive extraction.
Rsdk deals in tools
and versions
.
Usage is mostly similar to sdkman
.
Shell | Command Format | Examples |
---|---|---|
List available tools | rsdk list |
|
List available tool versions | rsdk list <tool> |
rsdk list java |
Install default version | rsdk install <tool> |
rsdk install maven |
Install specific version | rsdk install <tool> <version> |
rsdk install maven 3.9.9 rsdk install java 23-tem |
Remove version | rsdk uninstall <tool> <version> |
rsdk uninstall maven 3.9.9 |
Set default version | rsdk default <tool> <version> |
rsdk default maven 3.9.9 |
Set active version | rsdk use <tool> <version> |
rsdk use maven 3.9.9 |
Flush entire cache | rsdk flush |
|
Show help | rsdk --help |
Running with rsdk --debug
will enable verbose output and stack traces (equivalent of RUST_BACKTRACE=1
and RUST_LOG=debug
).
If proxying is required, rsdk
honors the http_proxy
and https_proxy
environment variables (same as curl).
If required, --insecure
disables certificate validation allowing use of self-signed certificates.
I do not have a collection of exotic machines to test on. If you use an architecture that isn't supported,
please add it to the defined PLATFORM
s in api.rs
and submit a pull request for it.
Alternative shells may require a bit more work to support but are welcome too.
nushell
support in particular would be nice.