Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/neetjn/rust-beers

My first Rust project to learn about the language and package structure.
https://github.com/neetjn/rust-beers

api crud rest rust rustlang starter

Last synced: about 1 month ago
JSON representation

My first Rust project to learn about the language and package structure.

Awesome Lists containing this project

README

        

# rust-beers

This project was created to learn Rust basics, as well as common use cases from other languages I use on a daily basis. I'll be recording my experiments and what I've learned while treking through Rust.

## Practices

* http - TBD
* error - TBD
* struct - TBD
* io - TBD
* list - TBD
* num - TBD
* string - TBD

## Experiments (practice + dart-beers)

* [ ] Create a local package, module, or library and utilize it in our entry point.
* [ ] Leverage cargo package manager for 3rd party packages.
* [ ] Read from environmental variables.
* [ ] Read from a file in a local directory.
* [ ] Create a basic DTO (data transfer object).
* [ ] Marshal and unmarshal DTO to string and data structure.
* [ ] Create an object factory/generator.
* [ ] Expose REST endpoints for the experiment application.
* [ ] Create a service description for my REST endpoints, following the HATEOAS model.
* [ ] Handle multiple different HTTP verbs.
* [ ] Experiment with annotations for simplifying common REST features.
* [ ] Dockerize application (include 3rd party packages).
* [ ] Create unit tests and execute on a CI/CD platform.
* [ ] Connect to a relational database (Postgres).

## What I've Learned

* Rust is a very mature language with production grade tooling and top notch documentation.
* Maintainers offer incredibly detailed documentation for the language, compiler, code styling, and package manager. Documentation for even more obscure use cases such as web assembly is also available.
* Rust compiles into binary code, so it can be shipped and ran just about anywhere.
* The language is incredibly fast and boasts performance benchmarks that give Go a run for it's money. In optimal use cases, it can perform as fast as C/C++ for certain operations.
* Rust has no runtime or garbage collection.
* Ownership model and memory/thread safety help thwart away many classes of bugs at compile time.
* Integrated tooling makes Rust a highly productive language.
* The language has many use cases ranging from networking to embedded systems.
* Rust is being used by many large tech companies including Firefox, Dropbox, Cloudflare, and Yelp.

## Resources

* [The Rust Programming Language (Book)](https://doc.rust-lang.org/book/)
* [Rust by Example](https://doc.rust-lang.org/stable/rust-by-example/)

---

Copyright (c) 2019 John Nolette Licensed under the MIT License.