Skip to content

Learning and practicing the lovely Rust 🦀 through making a URL Shortener service that I use in my personal site/tech-sandbox

License

Notifications You must be signed in to change notification settings

2beens/rust-url-shortener

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🦀 Rust 🦀 URL Shortener 🕸

Learning and practicing the lovely Rust 🦀 through making a URL Shortener service that I use.

Disclaimer: I deliberatelly don't use any frameworks or such "helpers" whith convenient functions, templates, macros, etc. The reason is to first try to learn pure Rust as much as possible, then at later points, I can use frameworks like actix-web, Tokio for async runtime, etc.

Disclaimer 2: A Rust project made by a Rust beginner, many parts re suboptimal and non-Rust idiomatic (all that exacerbated by Rust being one of the hardest modern languages IMHO). Moreover, TCP is used for now, and HTTP responses are written to the TCP streams (this is giving me some headaches... will change this to use some HTTP lib, to abstract this away).

TODOs:

  • ✔ create a simple web server
  • ✔ integrate Redis client
  • ✔ automated CI/CD via GitHub Actions;
    • ✔ when a feature branch is merged after a PR, automated CI/CD is triggered, and will deploy the new version to the machine
  • ✔ add business logic
  • ✔ add logger
  • ⏱ add unit tests
  • ✔ add support for timestamp, so URLs can be ordered
  • ✔ add support for custom URL ID
  • ✔ protect sensitive endpoints with some auth
    • ✔ read session token and validate it
  • basic Telemetry:
    • dist. tracing with Honeycomb
    • basic metrics to Prometheus

About

Learning and practicing the lovely Rust 🦀 through making a URL Shortener service that I use in my personal site/tech-sandbox

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages