{"id":22737221,"url":"https://github.com/hhow09/codecrafters-redis-go","last_synced_at":"2026-05-14T20:32:51.918Z","repository":{"id":246305007,"uuid":"820047450","full_name":"hhow09/codecrafters-redis-go","owner":"hhow09","description":"Build your own Redis","archived":false,"fork":false,"pushed_at":"2025-01-14T15:53:40.000Z","size":151,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-08T18:34:13.155Z","etag":null,"topics":["build-your-own-x","codecrafters","go","golang","redis"],"latest_commit_sha":null,"homepage":"https://app.codecrafters.io/users/hhow09","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/hhow09.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,"zenodo":null}},"created_at":"2024-06-25T17:34:04.000Z","updated_at":"2025-01-14T15:53:44.000Z","dependencies_parsed_at":"2024-09-05T22:41:11.801Z","dependency_job_id":"f208a052-f1f3-4099-9174-d912996f388c","html_url":"https://github.com/hhow09/codecrafters-redis-go","commit_stats":null,"previous_names":["hhow09/codecrafters-redis-go"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hhow09/codecrafters-redis-go","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhow09%2Fcodecrafters-redis-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhow09%2Fcodecrafters-redis-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhow09%2Fcodecrafters-redis-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhow09%2Fcodecrafters-redis-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hhow09","download_url":"https://codeload.github.com/hhow09/codecrafters-redis-go/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhow09%2Fcodecrafters-redis-go/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33042175,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-14T02:00:06.663Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["build-your-own-x","codecrafters","go","golang","redis"],"created_at":"2024-12-10T22:10:29.767Z","updated_at":"2026-05-14T20:32:51.900Z","avatar_url":"https://github.com/hhow09.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Build your own Redis\n[![progress-banner](https://backend.codecrafters.io/progress/redis/1434b283-70c2-4bab-aab9-8c15e6edf8c9)](https://app.codecrafters.io/users/codecrafters-bot?r=2qF)\n\n## [Overview](https://app.codecrafters.io/courses/redis/overview)\nRedis is an in-memory data structure store often used as a database, cache, message broker and streaming engine. In this challenge you'll build your own Redis server that is capable of serving basic commands, reading RDB files and more.\n\nAlong the way, you'll learn about TCP servers, the Redis Protocol and more.\n\n## Key Features\n- [x] implement [RESP](https://redis.io/docs/latest/develop/reference/protocol-spec/) Protocol (in [resp](./app/resp/resp.go))\n- [x] [PING](https://redis.io/docs/latest/commands/ping/), [ECHO](https://redis.io/docs/latest/commands/echo/) Command\n- [x] [SET](https://redis.io/docs/latest/commands/set/), [GET](https://redis.io/docs/latest/commands/get/) Command\n- [x] Persistence: Load and Save [RDB File](https://rdb.fnordig.de/file_format.html) (in [Persistence](./app/persistence))\n\n### [Replication](https://redis.io/docs/latest/operate/oss_and_stack/management/replication/)\n- [x] Replica handshake with master\n- [x] Replica Sync RDB from master\n- [x] Command propagation to replicas\n- [x] [WAIT](https://redis.io/docs/latest/commands/wait/) Command\n\n### Streams \n- [x] [XADD](https://redis.io/docs/latest/commands/xadd/) Command\n- [x] [XREAD](https://redis.io/docs/latest/commands/xread/) Command\n- [x] blocking [XREAD](https://redis.io/docs/latest/commands/xread/) Command\n- [x] [XRANGE](https://redis.io/docs/latest/commands/xrange/) Command\n\n### Transactions\n- [x] [MULTI](https://redis.io/docs/latest/commands/multi/) Command\n- [x] [EXEC](https://redis.io/docs/latest/commands/exec/) Command\n- [x] [DISCARD](https://redis.io/docs/latest/commands/discard/) Command\n\n## [Progress: Completed](https://app.codecrafters.io/users/hhow09)\npassed tests from every stage from codecrafters.io\n\n![complete_profile.png](./complete_profile.png)\n\n\n---\n## Development Notes\nThis is a starting point for Go solutions to the\n[\"Build Your Own Redis\" Challenge](https://codecrafters.io/challenges/redis).\n\nIn this challenge, you'll build a toy Redis clone that's capable of handling\nbasic commands like `PING`, `SET` and `GET`. Along the way we'll learn about\nevent loops, the Redis protocol and more.\n\n**Note**: If you're viewing this repo on GitHub, head over to\n[codecrafters.io](https://codecrafters.io) to try the challenge.\n\n# Passing the first stage\n\nThe entry point for your Redis implementation is in `app/server.go`. Study and\nuncomment the relevant code, and push your changes to pass the first stage:\n\n```sh\ngit add .\ngit commit -m \"pass 1st stage\" # any msg\ngit push origin master\n```\n\nThat's all!\n\n# Stage 2 \u0026 beyond\n\nNote: This section is for stages 2 and beyond.\n\n1. Ensure you have `go (1.19)` installed locally\n1. Run `./spawn_redis_server.sh` to run your Redis server, which is implemented\n   in `app/server.go`.\n1. Commit your changes and run `git push origin master` to submit your solution\n   to CodeCrafters. Test output will be streamed to your terminal.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhhow09%2Fcodecrafters-redis-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhhow09%2Fcodecrafters-redis-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhhow09%2Fcodecrafters-redis-go/lists"}