{"id":18274080,"url":"https://github.com/iamriteshkoushik/bluedis","last_synced_at":"2025-10-30T01:30:30.525Z","repository":{"id":246568687,"uuid":"784812776","full_name":"IAmRiteshKoushik/bluedis","owner":"IAmRiteshKoushik","description":"A Redis-CLI compatible in-memory database following the Redis Serialization Protocol with AOF persistance","archived":false,"fork":false,"pushed_at":"2024-12-30T07:50:32.000Z","size":68,"stargazers_count":2,"open_issues_count":8,"forks_count":5,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-30T08:34:44.456Z","etag":null,"topics":["aof","database","golang","in-memory-storage","redis-server"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IAmRiteshKoushik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-10T15:55:02.000Z","updated_at":"2024-12-30T07:50:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"b394de2f-de25-4b21-9637-b5af892c332f","html_url":"https://github.com/IAmRiteshKoushik/bluedis","commit_stats":null,"previous_names":["iamriteshkoushik/bluedis"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IAmRiteshKoushik%2Fbluedis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IAmRiteshKoushik%2Fbluedis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IAmRiteshKoushik%2Fbluedis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IAmRiteshKoushik%2Fbluedis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IAmRiteshKoushik","download_url":"https://codeload.github.com/IAmRiteshKoushik/bluedis/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238915907,"owners_count":19551794,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aof","database","golang","in-memory-storage","redis-server"],"created_at":"2024-11-05T12:08:37.327Z","updated_at":"2025-10-30T01:30:23.782Z","avatar_url":"https://github.com/IAmRiteshKoushik.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bluedis\n\nTrying to build a Redis clone for learning the internals of how Redis works and \nhow to build a low-latency system. The reference article can be found \n[here](https://www.build-redis-from-scratch.dev/en/aof)\n\n## High Level Architecture\n![SVG-Image](diagram.svg)\n\n## Usage Instructions\n1. Install the `redis-cli` on your machine.\n```bash\n# Ubuntu example\nsudo apt-get install redis\n\n# Arch Linux example\nsudo pacman -S redis\n```\n\n2. Compile and run the program. You should receive a listening message of PORT\n6379 which is also the default port of Redis. Make sure nothing else is running \non that port.\n```go\ngo build\n./bluedis\n```\n\n3. Run the redis-cli and type out redis commands through another terminal. The \nfollowing redis commands work\n- get\n- set\n- hget\n- hset\n- hgetall\n\n### Example Usage\n- Example 1 (For testing SET, GET)\n```bash\nset name ritesh # sets the name to ritesh\nget name        # returns ritesh\n```\n- Example 2 (For testing HGET, HSET, HGETALL)\n```bash\nhset users u1 ritesh # sets u1 as ritesh\nhget users u1        # returns ritesh\nhset users u2 abhi   # set u2 as abhi\nhgetall users        # should return both users\n```\n- Example 3 (For testing AOF)    \nRestart the `Bluedis` server after executing some `SET` commands. Then try to \n`GET` them. It ought to get back your data thereby proving persistance.\n\n## Roadmap\n- [X] Build the server\n- [X] Reading RESP\n- [x] Writing RESP\n- [x] Redis Commands\n- [x] Data Persistance with Append-Only File\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamriteshkoushik%2Fbluedis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiamriteshkoushik%2Fbluedis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamriteshkoushik%2Fbluedis/lists"}