Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/neetjn/rust-beers
- Owner: neetjn
- License: mit
- Created: 2019-10-01T00:18:04.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-01-30T05:41:40.000Z (almost 5 years ago)
- Last Synced: 2024-10-28T16:54:03.047Z (3 months ago)
- Topics: api, crud, rest, rust, rustlang, starter
- Language: Rust
- Size: 1.25 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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.