# Systems Assignment 🦀 [![crates.io](https://img.shields.io/crates/v/cloudflare-systems-assignment)](https://crates.io/crates/cloudflare-systems-assignment) [![status](https://github.com/tarikeshaq/cloudflare-2020-systems-engineering-assignment/workflows/Rust/badge.svg)](https://github.com/tarikeshaq/cloudflare-2020-systems-engineering-assignment/actions) [![status](https://docs.rs/cloudflare-systems-assignment/badge.svg?version=0.2.2)](https://docs.rs/crate/cloudflare-systems-assignment/0.2.2) ## Prerequisites: - Clone the repo ⬇️ using `git clone https://github.com/tarikeshaq/cloudflare-2020-systems-engineering-assignment` - You would need Rust installed, best way to do that is the `rustup` route: https://rustup.rs/ - That's it! ## How to run: Convieniently this crate is published on crates.io so you could pull it from there, however, if you want to run it locally simply run: ``` cargo run -- --url --profile ``` (Note, you can also add the `--release` flag to run an optimized version of the crate) And it would run `NUMBER` of HTTP get requests against `URL`, and present you with results. ### See the response In addition to the profiling data, if you'd like to see the response of a request, simply omit the `--profile`. I chose not to show the responses when we profile as that would just clutter the stdout. i.e, if you run `cargo run -- --url https://tarikeshaq.tarikesh.workers.dev/links` it will print out the response ## Example outputs: - When running `cargo run --release -- --url https://tarikeshaq.tarikesh.workers.dev/links --profile 10`: ![Profile of running requests against Cloudflare](./static/cloudflare-worker-response.JPG) - When running `cargo run --release -- --url https://aws.random.cat/meow --profile 10` ![Profile of running requests against random cat images](./static/random-cat.JPG) It seems that the cloudflare website is pretty darn fast 🥳 ## License This is a project solving an optional assignment from cloudflare and thus is licensed using the same license. Check it out in [`LICENSE`](./LICENSE)