{"id":25839286,"url":"https://github.com/huangjiahua/reredis","last_synced_at":"2025-03-01T04:26:21.434Z","repository":{"id":35156009,"uuid":"196138163","full_name":"huangjiahua/reredis","owner":"huangjiahua","description":"Rewrite Redis in Rust.","archived":false,"fork":false,"pushed_at":"2024-03-23T02:50:27.000Z","size":247,"stargazers_count":38,"open_issues_count":4,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-09-09T17:51:51.662Z","etag":null,"topics":["database","kvs-vault","redis","redis-server","rust-lang"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/huangjiahua.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-07-10T05:37:20.000Z","updated_at":"2024-08-21T01:19:53.000Z","dependencies_parsed_at":"2022-07-27T19:49:04.820Z","dependency_job_id":null,"html_url":"https://github.com/huangjiahua/reredis","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huangjiahua%2Freredis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huangjiahua%2Freredis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huangjiahua%2Freredis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huangjiahua%2Freredis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/huangjiahua","download_url":"https://codeload.github.com/huangjiahua/reredis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241317012,"owners_count":19943192,"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":["database","kvs-vault","redis","redis-server","rust-lang"],"created_at":"2025-03-01T04:26:20.520Z","updated_at":"2025-03-01T04:26:21.426Z","avatar_url":"https://github.com/huangjiahua.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"![reredis-pic](https://storage.googleapis.com/gawa-storage-x/reredis-27x9.jpg)\n# reredis\n\nreredis is a reimplementation of [Redis](https://redis.io/) (server) in Rust programming language. The current equivalent version of Redis is 1.x - 2.x. It supports Linux and MacOS(it depends on Unix API like fork, so Windows version is not available now).\n\n[![Build Status](https://dev.azure.com/jiahuah0077/jiahuah/_apis/build/status/huangjiahua.reredis?branchName=master)](https://dev.azure.com/jiahuah0077/jiahuah/_build/latest?definitionId=1\u0026branchName=master)\n[![Crates.io](https://img.shields.io/crates/v/reredis.svg)](https://crates.io/crates/reredis)\n\nLicensed under BSD 3-Clause.\n\n## HEADLINES!\n\nAsync version of reredis is coming in [async branch](https://github.com/huangjiahua/reredis/tree/async)! And there is blogs on this project [here](https://jiahuah.com/content/fa92)!\n\n## Building reredis\n\nreredis can be compiled on all *nix systems that supports Rust toolchain(but tested only on Linux and MacOS).\n\nIt requires Rust(\u003e= 1.37.0) to compile. To install Rust, [see this](https://www.rust-lang.org/tools/install).\n\nThe build command is\n\n```shell\n%cargo build --release\n```\n\nand the executable is located at  `./target/release/reredis`\n\nAfter building Redis, it is a good idea to test it using:\n\n```shell\n%cargo test  # This is unit tests\n```\n\nand\n\n```shell\n%cargo test --test server_test -- --ignored --nocapture # This is integration tests\n```\n\nAlternatively, you can use the Makefile, which is just a wrapper of the former commands.\n\n```shell\n%make\n```\n\nto build.\n\n```shell\n%make test\n```\n\nto do all tests.\n\n## How to use?\n\nThe command is identical to Redis. Like\n\n```shell\n%reredis  # start on 127.0.0.1:6379\n```\n\nand\n\n```shell\n%reredis --bind 0.0.0.0 --port 9090 # binds on all ip address and port 9090\n```\n\nand\n\n```shell\n%reredis example.conf # configured by example.conf\n```\n\nOther supported configuration are listed [here](./example.conf)\n\n### Supported Commands\n\nThe usage of the commands can be looked up [here](https://redis.io/commands).\n\n- get\n- set\n- setnx\n- del\n- exists\n- incr\n- decr\n- mget\n- rpush\n- lpush\n- lpop\n- rpop\n- llen\n- lindex\n- lset\n- lrange\n- ltrim\n- lrem\n- sadd\n- srem\n- smove\n- sismember\n- scard\n- spop\n- sinter\n- sinterstore\n- sunion\n- sunionstore\n- sdiff\n- sdiffstore\n- smembers\n- incrby\n- decrby\n- getset\n- randomkey\n- select\n- move\n- rename\n- renamenx\n- expire\n- keys\n- dbsize\n- auth\n- ping\n- echo\n- save\n- bgsave\n- shutdown\n- lastsave\n- type\n- sync\n- flushdb\n- flushall\n- sort\n- info\n- monitor\n- ttl\n- slaveof\n- object encoding\n\n## Relation with Redis\n\nreredis is a reimplementation of Redis, and its protocol is compatible with Redis Protocol([RESP](https://redis.io/topics/protocol)). But the current version of `.rdb` file is not compatible with Redis, because the format of `ziplist` and `intset` is slightly different. I'm still working on it. \n\n## Clients\n\nSince the protocol is compatible with Redis. All clients of Redis can be used with reredis, like [redis-rs](https://github.com/mitsuhiko/redis-rs) in Rust. There is currently on implementation of `redis-cli` in my project, but I'm working on it. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhuangjiahua%2Freredis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhuangjiahua%2Freredis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhuangjiahua%2Freredis/lists"}