Stream archive: Creating an Axum server to serve JSON (2022-08-22)
# 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
Видео Stream archive: Creating an Axum server to serve JSON (2022-08-22) автора Секреты сисадмина
Видео Stream archive: Creating an Axum server to serve JSON (2022-08-22) автора Секреты сисадмина
Информация
1 декабря 2023 г. 19:48:08
01:24:22
Похожие видео