Stream archive: Creating an Axum server to serve JSON part 2 (2022-08-23)

Subscribers:
8,080
Published on ● Video Link: https://www.youtube.com/watch?v=fVa1mPbYpbY



Duration: 1:29:52
102 views
5


# Project

The Brooks Builds Platform is going to be a webapp that will host my courses, live-streams, and other content. It's still in the early phases so the features I want so far are:

- Sign up for a free account
- Connect to Discord
- Link to courses on YouTube

## Tech Stack

### design

- [Figma](https://www.figma.com): A design tool that can be used for wireframes and mocking. The free tier allows for a single project.

### Project Management

- [Github Projects](https://docs.github.com/en/issues/trying-out-the-new-projects-experience/about-projects)

### Framework

- [Yew.rs](https://yew.rs): The web Framework that we're using. Yew is a component-based framework that allows us to program in Rust, and execute in a Web Browser
- [Stylist](https://github.com/futursolo/stylist-rs): We're using Stylist to allow CSS in Rust
- [Axum](https://docs.rs/axum/latest/axum/index.html) A web server written in Rust by the people who maintain Tokio. It's super fast and pretty fun to use.
- [Cypress](https://www.cypress.io) We're using Cypress to for E2E integration tests.
- [Bootstrap](https://getbootstrap.com): Bootstrap is a CSS framework that doesn't care if it is being run Yew.rs or some other framework.

### Libraries

- [rand](https://crates.io/crates/rand): Generating random numbers
- [get_random](https://docs.rs/getrandom/latest/getrandom/#indirect-dependencies): In order to use rand in a web context we need to tell get_random that we are using js
- [stylist](https://docs.rs/stylist/0.10.0/stylist/index.html) We are using the yew and use_style features so that we can have css in Rust!
- [gloo](https://crates.io/crates/gloo) Gloo gives us access to the browser api
- [Tokio](https://docs.rs/tokio/1.19.2/tokio/index.html) An Async runtime for Rust. Many projects use it behind the scenes.
- [Yew Router](https://yew.rs/docs/concepts/router): All good SPAs have a router, and this is the standard for Yew.
- [Load Dotenv](https://crates.io/crates/load-dotenv): This crate is helping us load the contents of our .env file into environment variables at compile time.
- [web-sys](https://crates.io/crates/web-sys): WebSys provides our Types for casting a Rust struct into a HtmlObject.
- [wasm-bindgen](https://crates.io/crates/wasm-bindgen): Utility functions and structs for working with the web
- [url](https://crates.io/crates/url): Parsing and creating URIs
- [cookie](https://crates.io/crates/cookie): Parsing and creating cookies
- [wasm-bindgen-futures](https://crates.io/crates/wasm-bindgen-futures): This crate let's us write and run async code as promises.
- [Yewdux](https://crates.io/crates/yewdux): We're using Yewdux as our centralized store. Think of it like Redux for React.
- [Yewdux Functional](https://crates.io/crates/yewdux-functional): This crate allows us to use Yewdux with functional components.
- [Yew Hooks](https://crates.io/crates/yew-hooks): A collection of functional hooks that we can use to reduce boilerplate.
- [eyre](https://crates.io/crates/eyre): An error handling library that makes handling errors nicer.
- [serde_json](https://crates.io/crates/serde_json): Allows us to serialize and deserialize JSON.
- [serde](https://crates.io/crates/serde): Serialization and Deserialization library
- [Graphql Client)[https://crates.io/crates/graphql_client]: A CLI and Crate for connecting to a GraphQL endpoint

### Devops

- [Pulumi](https://www.pulumi.com): Pulumi is used for infrastructure as code. It will configure AWS for me so that I can be sure that things are working the way that I expect them to.
- [AWS](https://aws.amazon.com): Amazon Web Services is one of the most popular cloud platforms. If you want to do it, AWS probably has a service to help you to it.
- [Docker](https://www.docker.com/) We're deploying our code to the servers using Docker, which allows us to ensure what the server looks and acts like

### Other Tools

- [Auth0](https://auth0.com): Auth0 is an Authentication as a Service product. They have a pretty generous free tier that I am taking advantage of, and expect to be able to until I start making money with this project.
- [Postgres](https://www.postgresql.org): We're using Postgres as a database to store our data.
- [Hasura](https://hasura.io/): A GraphQL API that connects to a Postgres database and exposes the data as an API.

## Links

- Playlist: https://www.youtube.com/playlist?list=PLrmY5pVcnuE-hqcn97OQVYjcn0XJ98ZkC
- Code: https://github.com/brooks-builds/brooks_builds
- Twitter: https://twitter.com/brooks_patton
-- Watch live at https://www.twitch.tv/brookzerker




Other Videos By Brooks Builds (brookzerker)


2022-10-11Stream archive: Checking out new Yewdux version (2022-09-29)
2022-10-11Stream archive: Recording Yewdux tutorials (2022-10-03)
2022-09-05Stream archive: Adding Diesel to Axum part 1 (2022-09-05)
2022-09-03Stream archive: Can we run JS from Rust? (2022-09-03)
2022-09-01Stream archive: Todo API with Rust + Axum (2022-09-01)
2022-08-30Stream archive: Todo API with Rust + Axum (2022-08-30)
2022-08-29Stream archive: Todo app API with Rust + Axum (2022-08-29)
2022-08-28Stream archive: Playing Screeps Arena Spawn and Swamp with Rust (2022-08-28)
2022-08-26Highlight: Creating an Axum server to serve JSON part 3
2022-08-26Highlight: Displaying recent Twitch VODS
2022-08-23Stream archive: Creating an Axum server to serve JSON part 2 (2022-08-23)
2022-08-22Stream archive: Creating an Axum server to serve JSON (2022-08-22)
2022-08-21Stream archive: Screeps Arena Spawn and Swamp in Rust (2022-08-21)
2022-08-19stream archive: Investigating sending HTTP requests in struct components (Rust + Yew.rs) (2022-08-19
2022-08-18Stream archive: Spawn and Swamp with Rust (2022-08-14)
2022-08-18Stream archive: Fixing my CD flow with GitHub Actions (2022-08-17)
2022-08-18Stream archive: Building a webapp (2022-08-15)
2022-08-18Stream archive: Building a webapp in Rust + Yew.rs + AWS (2022-08-18)
2022-08-18Stream archive: Building a web app and hosting on aws (2022-08-11)
2022-08-18Stream archive: Can we run Lambda functions with Rust? (2022-08-12)
2022-08-18Stream archive: Debugging end to end tests in GitHub Actions (2022-08-16)



Tags:
games
twitch



Other Statistics

Counter-Strike: Source Statistics For Brooks Builds (brookzerker)

There are 1,425 views in 21 videos for Counter-Strike: Source. Roughly a days worth of Counter-Strike: Source videos were uploaded to his channel, or 1.28% of the total watchable video on Brooks Builds (brookzerker)'s YouTube channel.