Awesome
<!-- Find blog posts with SELECT title,id FROM posts WHERE posts.title LIKE 'Title%'; --> <!-- Reset commits to edit the documentations with these. $rm -rf .git && $git init $git add . $git commit -m "Reset commits" $git remote add origin git@github.com:steadylearner/Rust-Full-Stack.git $git push -u origin master --> <!-- $git log --stat to see the difference in each commit. --> <!-- Link --> <!-- / --> <!-- package.json cargo web start(include build), cargo web deploy yarn watch:rs for devlopment then yarn prod(include build) for production <!-- Steadylearner Post --> <!-- / -->How to be a full stack Rust Developer
Read Rust API guideline. Test code here and refer to the Rust blog posts at Steadylearner.
If you need or know someone to hire a full stack developer, please contact me. I also do freelance.
If you want the similar one for Ethereum, visit eth-diary repository.
The reason to use this repository
Everything is simple with examples but it is not easy to make them with Rust.
Use code here and spare your time.
Crates by Steadylearner
- born is to help you reduce code duplication in struct and enum. Refer to the Python FAST API documentation that inspired it.
React and Rust web project demo that you can login
You can read server side code made with Rust Warp framework.
Smart compose demo with React
Node project examples
Contact
Use them if you need a personal help or need a new developer in your company.
The current state of this repository
I will update www.steadylearner.com Rust Rocket website. I knew that there was a problem with a view count update but was ignoring that. I will start after my current freelance work.
I am working while learning blockchain technologies. There will be less updates than before.
Rust
* Update Steadylearner with [a new Rocket async code](https://github.com/SergioBenitez/Rocket) and share some parts of it here.
Interesting projects and blog posts from others
- Rust-Performance
- envconfig-rs
- Redelete
- Blog with Rust Yew Frontend
- fstring-rs
- Loadtest with Rust
- Telegram bot framework
- Rust GUI
- Learn about the disk usage of directories
- Rest API with Actix
- Ploty in Rust
- Rust Warp Realworld App
- Rust Tide Realworld App
- Rust Yew Realworld App
- async executors
- Global data in Rust
- Host Rust+Wasm projects on github pages or other
- Text editor written in Rust
- async http
- a half hour to learn Rust
- Loadtest example
- Web crawler in Rust
- Rust bin template
- SQL async sqlx, mobc
- inline-python
- duplicate
- async diesel or tokio-diesel
- thiserror, anyhow and try blocks to handle errors in Rust
- surf and wiremock to test http
- lazy_static and once_cell
- juniper, and graphql-client
- rayon, crossbeam, easy-parallel, fearles concurrency etc for multithreading
- Rust + Tokio.rs + ElectronJs + React
- RustPython
- Yew + Rocket - I need to refer to it before I refactor or rewrite the Steadylearner.
CLI
If you want to make some apps, refer to the official documenation and the code snippet used there.
- bat
- Rust on the command line, clap and the blog post for it
- Communicating with humans
- Communicating with machines
- Real projects
Cargo packages
Use $du -h ./foldername first before you use plugins that delete codes to compare.
- Use cargo wipe when you are full of unused Rust projects. See results here. You can use $cargo clean for a folder. You can also use cargo-sweep.
- Use cargo ws to manage large projects and refer to Lerna. Read official documentation for this also.
Error handling
Read how std error works with official documenation. Learn how to use cusotm error types.
Then, use thiserror to build a web server, library etc. Use anyhow with it when necessary.
- Learn how to use thiserror and anyhow with this blog post
- Test them building a web server
- Rust error handling
Future
- epoll, select, poll, epoll difference
- async explanation in low level
- Epoll, Kqueue and IOCP explained in Rust
- Green thread in Rust, Futures explained
- Rust async book, tokio, async-std, async executors
- futures crate documentation and future by example
- embed-async-await
- a primer to Rust async, A practical guide to async in Rust
Macro
- Read these first. Procedural macro in Rust, proc macro workshop etc.
- Refer to duplicate source code to use derive.
- cargo-expand, trybuild and macrotest to test macros.
- Use them when you want more. proc macro hack, proc macro2, quote, syn, proc macro roids, procedural macros, tt-call for eager expansion etc.
How to publish a cargo package
Read rustdoc and cargo documentation for it.
Then, refer to cargo-publish-example and its dev.py to help the development process.
When you are ready to publish, read publishing to crate io and the similar one from cargo.
Optionally, you can include doc-comment to test code exampels in README.md. You can also dynamically create Rust documentation with it.
Refer to them also.
- Cargo.toml and Cargo.lock comparision
- Project structure and How to manage it
- Test, benchmark with std or criterion, documentation test
- Continuous Integration
- cargo profile, cargo doc, API guideline, publishing to crate.io, build.rs, cargo cache
- cargo manifest
- Include Travis CI. Use cargo fmt and cargo clippy with it if necessary.
Start
First, clone this repository.
$git clone https://github.com/steadylearner/Rust-Full-Stack.git
Prepare Rust development environment with How to install Rust. Then, use one of these commands.
- $./install.sh in web folder and $./run-local.sh for a full stack Rust chat app.
- $cd static_files && $cargo run --release for JavaScript frontend and Rust server side web app.
- $cd JSON_Webservice && $./run-local.sh for YouTube vlog example with JSON Webservice.
- $cd yew/rust_blog && $./install.sh && yarn watch:rs for a Rust blog example.
- $cd React_Rust to test a React app with Warp, Rocket, Actix, Express, Restify, Django, Golang, Vibora etc.
- $cd sitemap if you want to build sitemap automatically with a database.
star and share it with others if you want more.
Install and Deploy Rust
Docker and AWS
If you have a potent machine and ready to wait all again, refer to this.
Warp
- How to use Rust Warp, Hello, World with include!
- Use it with React single page app.
- CRUD REST API example with a database integration.
- Use it with Tera template engine.
- Rough login and private routes implemenation - Refer to Yew + Rocket full stack example. and warp-api-starter-template
Frontend
- How to use Rust Yew
- How to use a modal in Rust
- How to use routers in Rust Frontend
- How to modulize your Rust Frontend
- How to use NPM packages with Rust Frontend
- How to use markdown with Rust Frontend
Server
- How to use Rust Tera for undefined paths
- How to make Rust JSON Webservice with YouTube API
- How to use CORS and OPTIONS HTTP request with Rust Rocket
- How to serve static files with Rust
- How to use a single page app with Rust
- How to use gRPC with Rust Tonic and Postgresql database
- How to use React with Rust Actix
Full Stack
- Rust Chat App
- Fullstack Rust with Yew
- How to write Full Stack Rust code
- How to render a YouTube vlog with Rust Yew fetch API
- How to render blog posts with Rust Yew mounted API
Sitemap
- How to build a static sitemap.xml with Rust
- How to build a sitemap.xml with dynamic contents in Rust
- How to build a sitemap for images with Rust
- How to automate building sitemaps with Rust
Web Scrapers
Selenium
Blog
No need for a database because the posts are saved at GitHub. Others can also easily contribute to blog posts with its features.
- Rust lettre CLI example with email templates and an attachment
- Email REST API JSON webserivce server with Express and Mongoose
Microservices
You can find microservices examples built with Warp, Tonic, Postgresql, Redis.
Bots
With other languages
Golang
Refactor a private project and include tests there. Make an open source porject refering to that.
- How to structure Golang projects. Watch a video and read a blog and another blog for that also.
- Include some IPFS, Docker etc relevant projects here and production projects in private repositories.
Blockchain
- Code a complete real project.
React
- Start with this.
- Make umd proudction files and call it inside
<script>
with rollup - React with Ethereum
Browser extensions
Chrome
Payload is chrome api and mainfest.json file.
Resume
You can find easily testable projects at Resume repository. If you are an employer, contact me and I can show the result with a single command with AWS.
What you will learn with it
The most of the projects here are relevant to Rust. But, you can find the examples of JavaScript, Python, Golang, Docker etc. Just use what solves your problem.
- How to use HTML, CSS and Markdown in Rust Frontend
- How to include NPM packages and JavaScript modules in it
- How to use Rust Yew
- How to write components and organize the Rust project
- How to build complete Full Stack Rust Web Application
- How to modulize your Rust project
- How to deploy it
- How to write sitemaps and metatags for it
How to contribute
Make an issue. Update deprecated code. Include your project etc.
Warning
I do what I want here. It is a personal repository to learn and prototype new projects.
Commitments
READ MORE
They help you to learn and use Rust better.