Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/steadylearner/Rust-Full-Stack

Rust projects here are easy to use. There are blog posts for them also.
https://github.com/steadylearner/Rust-Full-Stack

actix-web fullstack-rust grpc grpc-rust rocket-rs rust rust-backend rust-chat rust-docker rust-example rust-frontend rust-json-webservice rust-microservices rust-yew sitemap steadylearner tonic warp websocket yew

Last synced: 9 days ago
JSON representation

Rust projects here are easy to use. There are blog posts for them also.

Awesome Lists containing this project

README

        

[Steadylearner]: https://www.steadylearner.com
[Steadylearner Web]: https://github.com/steadylearner/Webassembly
[Rust Website]: https://www.rust-lang.org/
[Cargo Web]: https://github.com/koute/cargo-web
[stdweb]: https://github.com/koute/stdweb
[Yew]: https://github.com/DenisKolodin/yew
[Yew Documenation]: https://docs.rs/yew/0.6.0/yew/
[Yew Service]: https://github.com/DenisKolodin/yew/tree/master/src/services
[Yew Examples]: https://github.com/DenisKolodin/yew/tree/master/examples
[Yew NPM example]: https://github.com/DenisKolodin/yew/tree/master/examples/npm_and_rest

[Build a rust frontend with Yew]: https://dev.to/deciduously/lets-build-a-rust-frontend-with-yew---part-2-1ech
[rollupjs]: https://github.com/rollup/rollup

[Rocket Yew starter pack]: https://github.com/anxiousmodernman/rocket-yew-starter-pack
[Web completely in Rust]: https://medium.com/@saschagrunert/a-web-application-completely-in-rust-6f6bdb6c4471

[Rocket]: https://rocket.rs/
[Bash for beginners]: http://www.tldp.org/LDP/Bash-Beginners-Guide/html/
[Rust Full Stack]: https://github.com/steadylearner/Rust-Full-Stack
[Browserify]: https://github.com/browserify/browserify
[unpkg]: https://unpkg.com/
[The C programming language]: https://www.google.com/search?q=the+c+programming+language

[node-emoji]: https://www.npmjs.com/package/node-emoji
[actix]: [https://actix.rs/]

[How to install Rust]: https://www.steadylearner.com/blog/read/How-to-install-Rust
[Rust Chat App]: https://www.steadylearner.com/blog/read/How-to-start-Rust-Chat-App
[Steadylearner Rust Blog Posts]: https://www.steadylearner.com/blog
[Yew Counter]: https://www.steadylearner.com/yew_counter
[How to use Rust Yew]: https://www.steadylearner.com/blog/read/How-to-use-Rust-Yew
[How to deploy Rust Web App]: https://www.steadylearner.com/blog/read/How-to-deploy-Rust-Web-App
[How to start Rust Chat App]: https://www.steadylearner.com/blog/read/How-to-start-Rust-Chat-App
[Fullstack Rust with Yew]: https://www.steadylearner.com/blog/read/Fullstack-Rust-with-Yew
[How to use NPM packages with Rust Frontend]: https://www.steadylearner.com/blog/read/How-to-use-NPM-packages-with-Rust-Frontend
[How to use markdown with Rust Frontend]: https://www.steadylearner.com/blog/read/How-to-use-markdown-with-Rust-Frontend
[How to modulize your Rust Frontend]: https://www.steadylearner.com/blog/read/How-to-modulize-your-Rust-Frontend

[How to use Python in JavaScript]: https://www.steadylearner.com/blog/read/How-to-use-Python-in-JavaScript

[How to build a static sitemap.xml with Rust]: https://www.steadylearner.com/blog/read/Static-sitemap.xml-with-Rust
[How to build a sitemap.xml with dynamic contents in Rust]: https://www.steadylearner.com/blog/read/How-to-make-sitemap-with-dynamic-contents-in-Rust
[How to build a sitemap for images with Rust]: https://www.steadylearner.com/blog/read/How-to-build-sitemap-for-images-with-Rust
[How to automate building sitemaps with Rust]: https://www.steadylearner.com/blog/read/How-to-automate-building-sitemaps-with-Rust

[How to write Full Stack Rust code]: https://www.steadylearner.com/blog/read/How-to-write-Full-Stack-Rust-code

[How to use a modal in Rust]: https://www.steadylearner.com/blog/read/How-to-use-a-modal-in-Rust
[How to use routers in Rust Frontend]: https://www.steadylearner.com/blog/read/How-to-use-routers-in-Rust-Frontend

[How to serve static files with Rust]: https://www.steadylearner.com/blog/read/How-to-serve-static-files-with-Rust
[How to use a single page app with Rust]: https://www.steadylearner.com/blog/read/How-to-use-a-single-page-app-with-Rust

[How to use Rust Tera for undefined paths]: https://www.steadylearner.com/blog/read/How-to-use-Rust-Tera-for-undefined-paths
[How to make Rust JSON Webservice with YouTube API]: https://www.steadylearner.com/blog/read/How-to-make-Rust-JSON-Webservice-with-YouTube-API

[How to use gRPC with Rust Tonic and Postgresql database]: https://www.steadylearner.com/blog/read/How-to-use-gRPC-with-Rust-Tonic-and-Postgresql-database

[How to use Python Scrapy to crawl This Week in Rust]: https://www.steadylearner.com/blog/read/How-to-use-Python-Scrapy-to-crawl-static-websites
[How to use React with Rust Actix]: https://www.steadylearner.com/blog/read/How-to-use-React-with-Rust-Actix

[How to use Docker commands]: https://www.steadylearner.com/blog/read/How-to-use-Docker-commands
[How to use Docker with Rust]: https://www.steadylearner.com/blog/read/How-to-use-Docker-with-Rust

[How to use Rust Warp]: https://www.steadylearner.com/blog/read/How-to-use-Rust-Warp

[donation]: (https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=HLNVQJ2L2YYZU)

[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=HLNVQJ2L2YYZU)

# How to be a full stack Rust Developer

Read Rust [API guideline](https://rust-lang.github.io/api-guidelines/). Test code here and refer to [the Rust blog posts at Steadylearner][Steadylearner Rust Blog Posts].

[If you need or know someone to hire a full stack developer, please contact me](https://www.linkedin.com/in/steady-learner-3151b7164/). I also do freelance.

If you want the similar one for Ethereum, visit [eth-diary](https://github.com/steadylearner/ethdev-diary) repository.

[![Rust full stack chat app](https://www.steadylearner.com/static/images/post/web/full-stack-rust-chat-app-by-steadylearner.png)](https://www.steadylearner.com/blog/read/Fullstack-Rust-with-Yew)

## 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.](https:/https://www.steadylearner.com/blog/search/Rust)

## Crates by Steadylearner

* [born](https://github.com/steadylearner/born) is to help you reduce code duplication in struct and enum. [Refer to the Python FAST API documentation that inspired it.](https://fastapi.tiangolo.com/tutorial/extra-models/#reduce-duplication)

[![born python and rust comparision example](https://github.com/steadylearner/Rust-Full-Stack/blob/master/unite_rust_and_python_with_born.png)](https://github.com/steadylearner/born)

[![born macro expansion example](https://github.com/steadylearner/Rust-Full-Stack/blob/master/born_example.png)](https://github.com/steadylearner/born)

## React and Rust web project demo that you can login

[You can read server side code made with Rust Warp framework.](https://github.com/steadylearner/Rust-Warp-Example)

[![React Rust demo](https://img.youtube.com/vi/I1iNhOuXESQ/0.jpg)](https://www.youtube.com/watch?v=I1iNhOuXESQ)

## Smart compose demo with React

[![Smart compose demo with React](https://img.youtube.com/vi/WA4icZw_5tA/0.jpg)](https://www.youtube.com/watch?v=WA4icZw_5tA)

## Node project examples

![Transcriber by Steadylearner](https://github.com/steadylearner/Rust-Full-Stack/blob/master/transcription_by_Steadylearner.png)

## Contact

Use them if you need a personal help or need a new developer in your company.

1. [LinkedIn](https://www.linkedin.com/in/steady-learner-3151b7164/) or [Twitter](https://twitter.com/steadylearner_p)
2. [Telegram](https://t.me/steadylearner)

## 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.](https://github.com/steadylearner/ethdev-diary) There will be less updates than before.

```console

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](https://github.com/nnethercote/perf-book)
* [envconfig-rs](https://github.com/greyblake/envconfig-rs)
* [Redelete](https://github.com/ardeaf/redelete)
* [Blog with Rust Yew Frontend](https://github.com/ahmad2smile/portfolio)
* [fstring-rs](https://github.com/danielhenrymantilla/fstrings-rs)
* [Loadtest with Rust](https://github.com/fcsonline/drill)
* [Telegram bot framework](https://github.com/teloxide/teloxide)
* [Rust GUI](https://github.com/bodil/vgtk)
* [Learn about the disk usage of directories](https://github.com/Byron/dua-cli)
* [Rest API with Actix](https://cloudmaker.dev/how-to-create-a-rest-api-in-rust/)
* [Ploty in Rust](https://github.com/igiagkiozis/plotly/tree/master)
* [Rust Warp Realworld App](https://github.com/cjbassi/rust-warp-realworld-backend)
* [Rust Tide Realworld App](https://github.com/colinbankier/realworld-tide)
* [Rust Yew Realworld App](https://github.com/jetli/rust-yew-realworld-example-app)
* [async executors](https://github.com/najamelan/async_executors)
* [Global data in Rust](https://github.com/paulkernfeld/global-data-in-rust)
* [Host Rust+Wasm projects on github pages or other](https://github.com/sn99/wasm-template-rust)
* [Text editor written in Rust](https://github.com/ilai-deutel/kibi)
* [async http](https://blog.yoshuawuyts.com/async-http/)
* [a half hour to learn Rust](https://fasterthanli.me/blog/2020/a-half-hour-to-learn-rust/)
* [Loadtest example](https://medium.com/@maxsparr0w/performance-of-node-js-compared-to-actix-web-37f20810fb1a)
* [Web crawler in Rust](https://rolisz.ro/2020/03/01/web-crawler-in-rust/)
* [Rust bin template](https://github.com/dpc/rust-bin-template)
* SQL async [sqlx](https://github.com/launchbadge/sqlx), [mobc](https://github.com/importcjj/mobc)
* [inline-python](https://github.com/fusion-engineering/inline-python)
* [duplicate](https://github.com/Emoun/duplicate)
* [async diesel](https://lib.rs/crates/async-diesel) or [tokio-diesel](https://lib.rs/crates/tokio-diesel)
* [thiserror](https://github.com/dtolnay/thiserror), [anyhow](https://github.com/steadylearner/anyhow) and [try blocks](https://doc.rust-lang.org/nightly/unstable-book/language-features/try-blocks.html) to [handle errors in Rust](https://blog.yoshuawuyts.com/error-handling-survey/)
* [surf](https://github.com/http-rs/surf) and [wiremock](https://github.com/LukeMathWalker/wiremock-rs) to test http
* [lazy_static](https://github.com/rust-lang-nursery/lazy-static.rs) and [once_cell](https://github.com/matklad/once_cell)
* [juniper](https://github.com/graphql-rust/juniper), and [graphql-client](https://github.com/graphql-rust/graphql-client)
* [rayon](https://github.com/rayon-rs/rayon), [crossbeam](https://github.com/crossbeam-rs/crossbeam), [easy-parallel](https://github.com/stjepang/easy-parallel), [fearles concurrency](https://blog.rust-lang.org/2015/04/10/Fearless-Concurrency.html) etc for multithreading
* [Rust + Tokio.rs + ElectronJs + React](https://www.reddit.com/r/rust/comments/hg73qw/rust_tokiors_electronjs_react_heaven/)
* [RustPython](https://github.com/RustPython/RustPython)
* [Yew + Rocket](https://github.com/alepez/devand) - 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](https://rust-cli.github.io/book/index.html) and [the code snippet](https://github.com/rust-cli/book/tree/master/src/tutorial/testing) used there.

* [bat](https://github.com/sharkdp/bat)
* [Rust on the command line](https://asquera.de/blog/2018-01-20/getting-started-with-rust-on-the-command-line/), [clap](https://github.com/clap-rs/clap#using-derive-macros) and [the blog post for it](https://kbknapp.dev/rust-cli/)
* [Communicating with humans](https://rust-cli.github.io/book/in-depth/human-communication.html)
* [Communicating with machines](https://rust-cli.github.io/book/in-depth/machine-communication.html)
* [Real projects](https://zaiste.net/posts/shell-commands-rust/)

## Cargo packages

[Use $du -h ./foldername](https://shapeshed.com/unix-du/) first before you use plugins that delete codes to compare.

* [Use cargo wipe](https://github.com/mihai-dinculescu/cargo-wipe) when you are full of unused Rust projects. [See results here.](https://github.com/steadylearner/Rust-Full-Stack/tree/master/cargo_wipe_results) You can use [$cargo clean](https://doc.rust-lang.org/cargo/commands/cargo-clean.html) for a folder. You can also use [cargo-sweep](https://github.com/holmgr/cargo-sweep).
* [Use cargo ws to manage large projects](https://github.com/pksunkara/cargo-workspaces) and refer to [Lerna](https://lerna.js.org/). [Read official documentation for this also.](https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html)

## Error handling

[Read how std error works with official documenation.](https://doc.rust-lang.org/std/error/trait.Error.html) [Learn how to use cusotm error types.](https://learning-rust.github.io/docs/e7.custom_error_types.html)

Then, use [thiserror](https://github.com/dtolnay/thiserror) to build a web server, library etc. Use [anyhow](https://github.com/dtolnay/thiserror) with it when necessary.

* [Learn how to use thiserror and anyhow with this blog post](https://nick.groenen.me/posts/rust-error-handling/)
* [Test them building a web server](https://blog.logrocket.com/create-an-async-crud-web-service-in-rust-with-warp/)
* [Rust error handling](https://nick.groenen.me/posts/rust-error-handling/)

## Future

1. [epoll](http://man7.org/linux/man-pages/man7/epoll.7.html), [select, poll, epoll difference](https://devarea.com/linux-io-multiplexing-select-vs-poll-vs-epoll/?sfw=pass1578842899#.Xhs7GaZbreQ)
2. [async explanation in low level](https://cfsamson.github.io/book-exploring-async-basics/introduction.html)
3. [Epoll, Kqueue and IOCP explained in Rust](https://cfsamsonbooks.gitbook.io/exploring-epoll-kqueue-and-iocp/)
4. [Green thread in Rust](https://cfsamson.gitbook.io/green-threads-explained-in-200-lines-of-rust/), [Futures explained](https://cfsamson.github.io/books-futures-explained/)
5. [Rust async book](https://rust-lang.github.io/async-book/01_getting_started/01_chapter.html), [tokio](https://tokio.rs/), [async-std](https://docs.rs/async-std/1.4.0/async_std/), [async executors](https://blog.wnut.pw/2020/02/25/anouncing-async_executors-a-building-block-for-executor-agnostic-libraries/)
6. [futures crate documentation](https://docs.rs/futures/0.3.1/futures/future/struct.AndThen.html) and [future by example](https://docs.rs/future-by-example/0.1.0/future_by_example/)
7. [embed-async-await](https://ferrous-systems.com/blog/embedded-async-await/)
8. [a primer to Rust async](https://omarabid.com/async-rust), [A practical guide to async in Rust](http://blog.logrocket.com/a-practical-guide-to-async-in-rust/)

## Macro

* Read these first. [Procedural macro in Rust](https://blog.rust-lang.org/2018/12/21/Procedural-Macros-in-Rust-2018.html), [proc macro workshop](https://github.com/steadylearner/proc-macro-workshop) etc.
* [Refer to duplicate source code to use derive.](https://docs.rs/duplicate/0.2.1/duplicate/)
* [cargo-expand](https://github.com/steadylearner/cargo-expand), [trybuild](https://github.com/steadylearner/trybuild) and [macrotest](https://docs.rs/macrotest/1.0.2/macrotest/) to test macros.
* Use them when you want more. [proc macro hack](https://github.com/dtolnay/proc-macro-hack), [proc macro2](https://github.com/alexcrichton/proc-macro2), [quote](https://github.com/dtolnay/quote), [syn](https://github.com/dtolnay/syn), [proc macro roids](https://github.com/azriel91/proc_macro_roids), [procedural macros](https://doc.rust-lang.org/reference/procedural-macros.html#attribute-macros), [tt-call for eager expansion](https://github.com/dtolnay/tt-call) etc.

## How to publish a cargo package

Read [rustdoc](https://doc.rust-lang.org/rustdoc/the-doc-attribute.html) and [cargo](https://doc.rust-lang.org/cargo) documentation for it.

Then, refer to [cargo-publish-example](https://github.com/steadylearner/cargo-publish-example) and its [dev.py](https://github.com/steadylearner/cargo-publish-example/blob/master/dev.py) to help the development process.

When you are ready to publish, read [publishing to crate io](https://doc.rust-lang.org/book/ch14-02-publishing-to-crates-io.html) and [the similar one from cargo](https://doc.rust-lang.org/cargo/reference/publishing.html).

Optionally, you can include [doc-comment](https://github.com/GuillaumeGomez/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](https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html)
* [Project structure](https://doc.rust-lang.org/cargo/guide/project-layout.html) and [How to manage it](https://doc.rust-lang.org/book/ch07-00-managing-growing-projects-with-packages-crates-and-modules.html)
* [Test](https://doc.rust-lang.org/book/ch11-00-testing.html), [benchmark](https://doc.rust-lang.org/unstable-book/library-features/test.html) with std or [criterion](https://github.com/bheisler/criterion.rs), [documentation test](https://doc.rust-lang.org/book/ch14-02-publishing-to-crates-io.html#documentation-comments-as-tests)
* [Continuous Integration](https://doc.rust-lang.org/cargo/guide/continuous-integration.html)
* [cargo profile](https://doc.rust-lang.org/cargo/reference/profiles.html), [cargo doc](https://doc.rust-lang.org/cargo/commands/cargo-doc.html), [API guideline](https://rust-lang.github.io/api-guidelines/), [publishing to crate.io](https://doc.rust-lang.org/cargo/reference/publishing.html), [build.rs](https://doc.rust-lang.org/cargo/reference/build-scripts.html), [cargo cache](https://github.com/matthiaskrgr/cargo-cache)
* [cargo manifest](https://doc.rust-lang.org/cargo/reference/manifest.html)
* Include Travis CI. Use [cargo fmt](https://github.com/rust-lang/rustfmt) and [cargo clippy](https://github.com/rust-lang/rust-clippy) with it if necessary.

## Start

First, clone this repository.

```console
$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.

1. **$./install.sh** in **web** folder and **$./run-local.sh** for a full stack Rust chat app.
2. **$cd static_files && $cargo run --release** for JavaScript frontend and Rust server side web app.
3. **$cd JSON_Webservice && $./run-local.sh** for YouTube vlog example with JSON Webservice.
4. **$cd yew/rust_blog && $./install.sh && yarn watch:rs** for a Rust blog example.
5. **$cd React_Rust** to test a React app with **Warp**, **Rocket**, **Actix**, Express, Restify, Django, Golang, Vibora etc.
6. **$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

1. [How to install Rust]
2. [How to deploy Rust Web App]

## Docker and AWS

If you have a potent machine and ready to wait all again, [refer to this.](https://www.callicoder.com/docker-golang-image-container-example/)

[![Docker and Rust by Steadylearner](https://www.steadylearner.com/static/images/post/Rust/docker-rust.png)](https://www.steadylearner.com/blog/read/How-to-use-Docker-with-Rust)

1. [How to use Docker commands]
2. [How to use Docker with Rust]

## Warp

1. [How to use Rust Warp], [Hello, World with include!](https://github.com/steadylearner/Rust-Full-Stack/tree/master/warp/hello_world_with_include!)
2. [Use it with React single page app.](https://github.com/steadylearner/Rust-Full-Stack/tree/master/React_Rust/server/warp)
3. [CRUD REST API example with a database integration.](https://github.com/steadylearner/Rust-Full-Stack/tree/master/warp/database)
4. [Use it with Tera template engine.](https://github.com/steadylearner/Rust-Full-Stack/tree/master/warp/tera_and_static_files)
5. [Rough login and private routes implemenation](https://github.com/steadylearner/Rust-Warp-Example) - Refer to [Yew + Rocket full stack example.](https://github.com/alepez/devand) and [warp-api-starter-template](https://github.com/rusty-crab/warp-api-starter-template)

## Frontend

[![NPM and Rust by Steadylearner](https://www.steadylearner.com/static/images/post/web/npm-and-rust-by-Steadylearner.png)](https://www.steadylearner.com/blog/read/How-to-use-NPM-packages-with-Rust-Frontend)

1. [How to use Rust Yew]
2. [How to use a modal in Rust]
3. [How to use routers in Rust Frontend]
4. [How to modulize your Rust Frontend]
5. [How to use NPM packages with Rust Frontend]
6. [How to use markdown with Rust Frontend]

## Server

[![Rust equivalent server and client code](https://www.steadylearner.com/static/images/post/web/client-server-equal-rust-code.png)](https://www.steadylearner.com/blog/read/How-to-write-Full-Stack-Rust-code)

1. [How to use Rust Tera for undefined paths]
2. [How to make Rust JSON Webservice with YouTube API]
3. [How to use CORS and OPTIONS HTTP request with Rust Rocket](https://www.steadylearner.com/blog/read/How-to-use-CORS-and-OPTIONS-HTTP-request-with-Rust-Rocket)
4. [How to serve static files with Rust]
5. [How to use a single page app with Rust]
6. [How to use gRPC with Rust Tonic and Postgresql database]
7. [How to use React with Rust Actix]

## Full Stack

[![Rust Router Example](https://www.steadylearner.com/static/images/post/web/rust-router-example.png)](https://www.steadylearner.com/blog/read/How-to-use-routers-in-Rust-Frontend)

1. [Rust Chat App]
2. [Fullstack Rust with Yew]
3. [How to write Full Stack Rust code]
4. [How to render a YouTube vlog with Rust Yew fetch API](https://www.steadylearner.com/blog/read/How-to-render-a-YouTube-vlog-with-Rust-Yew-fetch-API)
5. [How to render blog posts with Rust Yew mounted API](https://www.steadylearner.com/blog/read/How-to-render-blog-posts-with-Rust-Yew-mounted-API)

## Sitemap

[![Sitemaps with Rust](https://www.steadylearner.com/static/images/post/sitemap/automate-sitemap-rust.png)](https://www.steadylearner.com/blog/read/How-to-automate-building-sitemaps-with-Rust)

1. [How to build a static sitemap.xml with Rust]
2. [How to build a sitemap.xml with dynamic contents in Rust]
3. [How to build a sitemap for images with Rust]
4. [How to automate building sitemaps with Rust]

## Web Scrapers

1. [How to use Python Scrapy to crawl This Week in Rust]
2. [Working code of Webscraping with Rust](https://github.com/steadylearner/Rust-Full-Stack/tree/master/web_scraper)

## Selenium

1. [How to use Rust thirtyfour to scrap React app](https://github.com/steadylearner/Rust-Full-Stack/tree/master/Selenium)

## Blog

1. [Python Blog with posts saved at GitHub](https://github.com/steadylearner/Rust-Full-Stack/tree/master/blog)
2. [Visit Steadylearner](https://www.steadylearner.com/blog) or [read blog posts at GitHub](https://github.com/steadylearner/Rust-Full-Stack/tree/master/blog/posts)

No need for a database because the posts are saved at GitHub. Others can also easily contribute to blog posts with its features.

## Email

1. [Rust lettre CLI example with email templates and an attachment](https://github.com/steadylearner/Rust-Full-Stack/tree/master/email/client/lettre)
2. [Email REST API JSON webserivce server with Express and Mongoose](https://github.com/steadylearner/resume/tree/master/2.%20express_mongoose)

## Microservices

You can find microservices examples built with **Warp**, **Tonic**, **Postgresql**, **Redis**.

1. [gRPC Warp client and Tonic server with Postgresql and Redis Wrapper](https://github.com/steadylearner/Rust-Full-Stack/tree/master/microservices_with_docker)

## Bots

[![Rust Telegram bot](https://github.com/steadylearner/Rust-Full-Stack/blob/master/bots/teloxide/rust_example.png)](https://github.com/steadylearner/Rust-Full-Stack/tree/master/bots/teloxide/src)

1. [Rust](https://github.com/steadylearner/Rust-Full-Stack/tree/master/bots/teloxide/src)
2. [Golang](https://github.com/steadylearner/golang-webscraper)

## With other languages

1. [JavaScript at a web browser](https://github.com/steadylearner/Rust-Full-Stack/tree/master/with-javascript)
2. [Python](https://github.com/steadylearner/Rust-Full-Stack/blob/master/with-python)

## Golang

Refactor a private project and include tests there. Make an open source porject refering to that.

* [How to structure Golang projects.](https://github.com/golang-standards/project-layout) Watch [a video](https://www.youtube.com/watch?v=oL6JBUk6tj0) and read [a blog](https://medium.com/@benbjohnson/standard-package-layout-7cdbc8391fc1) and [another blog](https://peter.bourgon.org/go-best-practices-2016/) 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.](https://github.com/steadylearner/Rust-Full-Stack/tree/master/parcel-react)
* [Make umd proudction files and call it inside `` with rollup](https://github.com/steadylearner/react-embed-with-rollup)
* [React with Ethereum](https://github.com/steadylearner/ethdev-diary/tree/master/start/react-parcel-eth)

## Browser extensions

### Chrome

Payload is [chrome api](https://developer.chrome.com/extensions/webRequest) and [mainfest.json](https://developer.chrome.com/extensions/manifest) file.

[![React Chrome minimal example](https://github.com/steadylearner/Rust-Full-Stack/blob/master/react_chrome_extension.png)](https://github.com/steadylearner/Rust-Full-Stack/tree/master/browser-extensions/chrome/react)

* [Start](https://github.com/steadylearner/Rust-Full-Stack/tree/master/browser-extensions/chrome/start)
* [React](https://github.com/steadylearner/Rust-Full-Stack/tree/master/browser-extensions/chrome/react)
* [Examples](https://developer.chrome.com/extensions/samples) and [Developer Guide](https://developer.chrome.com/extensions/devguide)

## Resume

You can find easily testable projects at [Resume repository](https://github.com/steadylearner/resume). 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.

1. How to use HTML, CSS and Markdown in Rust Frontend
2. How to include NPM packages and JavaScript modules in it
3. How to use Rust [Yew]
4. How to write components and organize the Rust project
5. How to build complete **Full Stack Rust Web Application**
6. How to modulize your Rust project
7. How to deploy it
8. 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

* [Teloxide subreddit and with_webserver bot.](https://github.com/teloxide/teloxide#community-bots)

## READ MORE

They help you to learn and use Rust better.

* [Haskell](https://github.com/steadylearner/Haskell)
* [C](https://www.google.com/search?&q=the+c+programming+language)
* [C++](https://www.learncpp.com)
* [Rust](https://www.google.com/search?&q=programming+rust)