You will be working through a series of test-driven exercises, or koans, to learn Rust while building your own JIRA clone!
This workshop is designed for people who have experience using other programming languages and are just getting
started with Rust.
If you run into any issue with the assumed level of Rust knowledge, please ping us and we'll sort it together!
- Rust (follow instructions here).
If Rust is already installed on your system, make sure you are running on the latest compiler version (cargo --version
).
If not, update usingrustup update
(or another appropriate command depending on how you installed Rust on your system). - (Optional) An IDE with Rust autocompletion support.
We recommend one of the following:
- IntelliJ IDEA with the
intellij-rust
plugin; - Visual Studio Code with the
rust-analyzer
extension.
Checkout therust-in-peace
extension for a battery-included Rust setup on VS Code.
- IntelliJ IDEA with the
git clone git@github.com:LukeMathWalker/build-your-own-jira-with-rust.git
cd build-your-own-jira-with-rust
# Our `koans` CLI, you will need it to work through the exercises.
# You can run `koans --help` to check that everything is running properly
cargo install -f --path koans-framework
# Work on your solution in a branch.
git checkout -b my-solution
# Get started!
koans --path jira-wip
Follow the instructions shown in the terminal to get started with the first koan.
Run this command from the top-level folder
koans --path jira-wip
to verify your current solutions and move forward in the workshop.
Enjoy!
Throughout the workshop, the following resources might turn out to be useful:
- Rust Book
- Rust documentation (you can also open the documentation offline with
rustup doc
!)
Under jira-cli
, you can find a worked-out solution.
You can build it running:
cargo build --bin jira-cli
You can try it out running:
cargo run --bin jira-cli -- --help
You can run its tests running:
cargo test --bin jira-cli
You can browse its documentation with:
# We rely on the nightly compiler for automatic semantic link generation
cargo +nightly doc --manifest-path jira-cli/Cargo.toml --open