/21C1-Rust-eze

a Redis-like database in Rust

Primary LanguageRust

CI

Redis Database in Rust

First Part

An implementation of Redis database.

Redis is a (mainly) in-memory storage, used as a Database of type key-value in memory, as well as cache and message broker, with persistence option of the data.

This version implements:

  • Client/Server architecture
  • TCP Protocol
  • Server multithreading
  • Request and response Redis Protocol
  • Three different types of data structures: strings, lists, sets
  • Keys expiration
  • Periodic persistence of data to disk storage (snapshots feature)
  • Publishers/subscribers functionality
  • Garbage collector: lazy and periodic deletion

All this project was made using technics as: Automated Unit Testing, Automated Integration Tests using a Redis client to the Rust language (an external crate), Error Handling and versions control.

Redis HTTP Monitor in Rust

Second Part

The web server that receives requests from browsers, communicating with them through the HTTP/1.1 protocol. The description of this protocol is the one corresponding to RFC 2616.

This version implements:

  • Client/Server architecture
  • HTTP Protocol
  • Server multithreading (by a Threadpool)
  • Datapacks and resources routing.
  • Graphic Interface.

Authors

Nombre Padrón Email
FIRMAPAZ, Agustin Ezequiel 105172 afirmapaz@fi.uba.ar
PACHECO, Federico Jose 104541 fpacheco@fi.uba.a
PANETTA, Martina Agata 103713 mpanetta@fi.uba.ar

This project was proposed and guided by Taller de Programacion I (Deymonnaz), Facultad de Ingenieria, Universidad de Buenos Aires.