# hyper-jump
_The console lights up, keys clack rapidly and then..._ 🛸
hyper-jump is the Cardano aircraft action where the only thing faster than the transactions is the jump between versions ⚡ Skip through versions like a time traveler: but beware, type the wrong command and you might just end up installing `cardano-node-0.0.1-alpha` - and get stuck in the past 👀
## Core Features
- **Version Management**: Install and switch between different versions of Cardano ecosystem tools.
- **Environment Isolation**: Create isolated environments for different projects, each with its own set of package versions.
- **Remote Listing**: View available versions of packages from remote repositories.
- **Package Installation**: Download and install specific versions of packages with ease.
- **Package Uninstallation**: Remove installed versions of packages to declutter the environment.
- **Version Switching**: Seamlessly switch between installed versions with a single command.
- **Version Cleanup**: Erase all installed versions of packages to start fresh.
- **Proxy Handling**: Hyper-Jump acts as a proxy, allowing users to run commands from the selected package version.
## Potential Features
- **Updates notification**: Notify users when new versions of packages are available.
- **Custom Package Sources**: Allow users to add custom package sources or repositories for more flexibility.
- **Enhanced List Filtering**: Provide options to filter the list of installed and remote versions based on criteria such as release date or stability.
## Supported Packages
| Package Name | Alias | Description |
| ------------------------------------------------------------------------------ | --------------------- | ---------------------------------------------------- |
| [Cardano Submit Api](https://github.com/IntersectMBO/cardano-node) | `cardano-submit-api` | Manage versions of the Cardano Submit Api software. |
| [Cardano Node](https://github.com/IntersectMBO/cardano-node) | `cardano-node` | Manage versions of the Cardano Node software. |
| [Cardano CLI](https://github.com/cardano-scaling/cardano-cli) | `cardano-cli` | Manage versions of the Cardano CLI tool. |
| [Partner Chains CLI](https://github.com/input-output-hk/partner-chains) | `partner-chains-cli` | Manage versions of the Partner Chains CLI tool. |
| [Partner Chains Node](https://github.com/input-output-hk/partner-chains) | `partner-chains-node` | Manage versions of the Partner Chains Node software. |
| [SideChain](https://github.com/input-output-hk/partner-chains-smart-contracts) | `sidechain-cli` | Manage versions of the SideChain CLI tool. |
| [Mithril](https://github.com/input-output-hk/mithril) | `mithril-client` | Manage versions of the Mithril client software. |
| [Scrolls](https://github.com/txpipe/scrolls) | `scrolls` | Manage versions of the Scrolls client software. |
| [Oura](https://github.com/txpipe/oura/tree/main) | `oura` | Manage versions of the Oura client software. |
| [Dolos](https://github.com/txpipe/dolos) | `dolos` | Manage versions of the Dolos client software. |
| [Aiken](https://github.com/aiken-lang/aiken) | `aiken` | Manage versions of the Aiken client software. |
## Installation
```bash
cargo install hyper-jump
```
## Configuration
#### On Linux and macOS:
Add the following line to your shell configuration file (e.g., `~/.bashrc`, `~/.zshrc`, etc.):
```bash
export PATH="$HOME/.local/share/hyper-jump/cardano-bin:$PATH"
```
Or add the hyper-jump binary path to your PATH by running:
```bash
sudo launchctl config user path "$(hyper-jump prefix):${PATH}"
```
## Usage
To manage packages, use the following subcommands:
### Help
Display help information:
```bash
hyper-jump --help
```
### Use
Switch to a specific version of a package.
```sh
hyper-jump use cardano-node
```
### Install
Install a specific version of a package.
```sh
hyper-jump install cardano-node
```
### List
List installed versions of a package:
```sh
hyper-jump list cardano-node
```
### List Remote
List remote versions available for a package.
```sh
hyper-jump list-remote cardano-node
```
### Uninstall
Uninstall a specific version of a package.
```sh
hyper-jump uninstall cardano-node
```
### Erase
Remove all installed versions.
```sh
hyper-jump erase
```