The “Build Your Own Redis” Book Is Completed

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • build-your-own-x

    Master programming by recreating your favorite technologies from scratch.

  • You're probably thinking of https://codecrafters.io/. I've been meaning to check them out with my education stipend from work, just haven't had the time to devote to it.

  • miniredis

    A very tiny clone of Redis for experimenting with PubSub

  • I actually build minimal Redis clones in every new language or runtime, or when I want to explore threading models. It all started with https://github.com/rcarmo/miniredis (which I forked to add and experiment with pub/sub), and I just found myself doing it again and again because Redis is the quintessential network service:

    By implementing it, you learn about socket handling, threading models, data representation, concurrency (if you want to do a multi-threaded version), etc. None of my "ports" are fully functional, but they all helped me sort out some of the above plus build tools, packaging, dependencies, etc.

    It's "hello world" for core cloud native microservices, if you will (and without having to do REST or JSON stuff).

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • zero-to-production

    Code for "Zero To Production In Rust", a book on API development using Rust.

  • redi-s

    A performant Redis server implemented in SwiftNIO.

  • reredis

    Rewrite Redis in Rust.

  • I did something similar by building Redis in Rust a few years ago. It’s a really good learning and exercise to a lot of topics like network programming. https://github.com/huangjiahua/reredis

  • I guess that's what you're looking for

    [1] -https://github.com/osynavets/build-your-own-x-in-rust

  • go-caskdb

    (educational) build your own disk based KV store in Go

  • I am a big fan of Build Your Own X educational projects. Recently, I released a Go version of my build your own KV Store project. I have set up this project in TDD fashion with the tests. So, you start with simple functions, pass the tests, and the difficulty level goes up. There are hints if you get stuck (e.g. link). When all the tests pass, you will have written a persistent key-value store.

    go - https://github.com/avinassh/go-caskdb

    python - https://github.com/avinassh/py-caskdb

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • ddia

    Playground to practice "Designing Data-Intensive Applications" concepts

  • Shameless plug; I've been playing with a [Redis Server implementation in Go](https://github.com/jan-carreras/ddia) for the past weeks. Mainly as a way to try out things explained in Designing Data-Intensive Applications book (favourite of mine!). Those are the [commands implemented](https://github.com/jan-carreras/ddia/blob/master/commands.md), + TTL + AoF files (for state replication) + config file, ... The "challenge" was to do it without any external dependency other than go stdlib.

    > I actually build minimal Redis clones in every new language or runtime, or when I want to explore threading models.

    100% agree with your advice; I'll definitively try to implement other parts of the Redis service in Go (eg: pub/sub, replication, clustering...) and probably repeat the same exercise when learning any new language.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Sharing Saturday #371

    3 projects | /r/roguelikedev | 16 Jul 2021
  • Ask HN: Leetcode for Back End and Server Development

    3 projects | news.ycombinator.com | 3 Jul 2023
  • Disappointing experience with 'Command-Line Rust': Seeking more comprehensive Rust resources

    5 projects | /r/rust | 8 Apr 2023
  • Anything C can do Rust can do Better

    58 projects | dev.to | 1 Dec 2022
  • how did u guys learn how to code (apart from school classes)?

    2 projects | /r/OntarioGrade12s | 21 Oct 2022