• Stars
    star
    937
  • Rank 48,766 (Top 1.0 %)
  • Language
    Rust
  • License
    MIT License
  • Created almost 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A test-driven workshop to learn Rust building your own JIRA clone!

Build your own JIRA with Rust

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!

Requirements

  • 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 using rustup 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:

Getting started

git clone [email protected]: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!

References

Throughout the workshop, the following resources might turn out to be useful:

Solutions

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

More Repositories

1

zero-to-production

Code for "Zero To Production In Rust", a book on API development using Rust.
Rust
5,631
star
2

pavex

An easy-to-use Rust framework for building robust and performant APIs
Rust
1,707
star
3

cargo-chef

A cargo-subcommand to speed up Rust Docker builds using Docker layer caching.
Rust
1,706
star
4

wiremock-rs

HTTP mocking to test Rust applications.
Rust
618
star
5

tracing-actix-web

Structured logging for actix-web applications.
Rust
229
star
6

ndarray-koans

Material for "ML Introduction to ndarray" workshop at RustFest 2019.
Jupyter Notebook
110
star
7

biscotti

A Rust library for managing HTTP cookies.
Rust
109
star
8

bunyan

A CLI to pretty print logs in bunyan format. A Rust port of the original JavaScript bunyan CLI.
Rust
92
star
9

tracing-bunyan-formatter

A Layer implementation for tokio-rs/tracing providing Bunyan formatting for events and spans.
Rust
82
star
10

cargo-px

A cargo subcommand that extends cargo's capabilities when it comes to code generation.
Rust
50
star
11

actix-web-flash-messages

A (flash) message framework for actix-web. A port to Rust of Django's message framework.
Rust
46
star
12

multipeek

An iterator adapter to peek at future elements without advancing the cursor of the underlying iterator.
Rust
26
star
13

clustering-benchmarks

Benchmarks `linfa` against `scikit-learn` on a clustering task.
Jupyter Notebook
25
star
14

tracing-panic

A custom panic hook to capture panic info in your telemetry pipeline
Rust
18
star
15

cargo-manifest

Fork to fix some serialization issues.
Rust
12
star
16

jlox-rs

A Rust version of the jlox interpreter from the "Crafting Interpreters" book.
Rust
9
star
17

cargo-like-utils

A collection of utils (shell, styling, locking) to write CLIs that behave similarly to `cargo`
Rust
5
star
18

pavex-project-template

A starter template for a new Pavex project
Rust
3
star
19

LukeMathWalker

2
star
20

reqwest-timeout-minimum-reproducible-example

Minimal reproducible example for a timeout issue with reqwest.
Rust
2
star
21

lukemathwalker.github.io

Personal website.
HTML
1
star
22

iaml-iwildcam2019

Python
1
star
23

tracing-min

Minimum example to reproduce core dump.
Rust
1
star
24

actix-web-minimal-error-example

A minimal reproducible example of issues with actix-web's error handling logic.
Rust
1
star