rojo-rbx / rokit

Next-generation toolchain manager for Roblox projects
MIT License
72 stars 13 forks source link

🚀 Rokit

Next-generation toolchain manager for Roblox projects.

Features

Installation

Follow the instructions for your platform below - when installed, Rokit will guide you through the rest.

macOS & Linux

Run the automated installer script in your terminal:

curl -sSf https://raw.githubusercontent.com/rojo-rbx/rokit/main/scripts/install.sh | bash

Windows

Download and run* rokit.exe from the latest release page - this will automatically install Rokit.

* Make sure to run rokit.exe directly, by double-clicking it in the File Explorer, for automatic installation to be triggered.
If you would like to install Rokit from a terminal or shell such as PowerShell / CMD, run rokit.exe self-install instead.

Other

Installing from source Rokit can be compiled and installed from source using [`cargo`][rustup]: ```sh cargo install rokit --locked # Installs the Rokit binary rokit self-install # Initializes necessary directories and data files for Rokit to work ``` This _may_ work on systems that Rokit is not officially compatible with, but note that no support is provided for non-official targets.
Check the [latest GitHub release][latest-release] to see which targets Rokit is compatible with.

Usage

Running rokit --help in your terminal will give you a full overview of all available commands.
Running rokit command-name --help will give you full details about a specific command.

Brief overview of available commands - `rokit init` - Initializes a new project in the current directory. - `rokit add` - Adds and installs a tool. - `rokit list` - Lists all currently installed tools. - `rokit install` - Installs all project-specific tools. - `rokit update` - Updates a specific tool, or all project-specific tools, to the latest version. - `rokit authenticate` - Authenticates with GitHub or other artifact providers. - `rokit self-update` - Updates Rokit itself to the latest version. - `rokit self-install` - Installs Rokit itself and updates tool executable links.

Q & A

Why use Rokit over Foreman or Aftman? ### For a new Roblox developer Rokit is the _fastest_ and _friendliest_ way to get set up with tooling for a new Roblox project.
Here are some key differences between Rokit and Foreman / Aftman: - Usable in _any_ project, even projects using `foreman.toml` / `aftman.toml`, while Foreman / Aftman are incompatible with each other by design. - Massively improved installation times and more consistent cross-platform behavior. - No manual editing of manifest or link files. ### For everyone else While Foreman and Aftman have been working great for a long time, they have an uncertain future as toolchain managers for the community.
Most of their existing problems boil down to issues with maintainership: - [Foreman][foreman] is maintained by Roblox itself, and has angled itself towards internal uses at Roblox. - [Aftman][aftman] is maintained by a third party that is no longer interested in Roblox. Rokit aims to solve this by taking a community-first approach and being built with community contributions in mind.
Rokit also acknowledges that developers will not migrate from any of the existing toolchain managers _without good reason_, it needs to be **_substantially better_** and require **_virtually no effort_** to migrate.
How do you pronounce Rokit? ### However you want. - "Rocket" for speed - "Ro-kit" for Roblox-y flair - "Rock-it" if you're feeling groovy