{"id":18624129,"url":"https://github.com/wildonion/redis4","last_synced_at":"2025-04-11T03:32:04.574Z","repository":{"id":171971949,"uuid":"648542460","full_name":"wildonion/redis4","owner":"wildonion","description":"🤝 a very simple implementation of redis based on sharded shared sate storage design pattern","archived":true,"fork":false,"pushed_at":"2023-09-24T11:27:34.000Z","size":37,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-18T06:14:43.865Z","etag":null,"topics":["event-listener","event-loop","mutex-lock","redis","socket","tokio-rs"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/wildonion.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}},"created_at":"2023-06-02T08:02:39.000Z","updated_at":"2023-10-08T08:22:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"c45995ec-9c98-424b-920e-610f14caf01e","html_url":"https://github.com/wildonion/redis4","commit_stats":null,"previous_names":["wildonion/redis4"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wildonion%2Fredis4","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wildonion%2Fredis4/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wildonion%2Fredis4/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wildonion%2Fredis4/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wildonion","download_url":"https://codeload.github.com/wildonion/redis4/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248335518,"owners_count":21086606,"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":["event-listener","event-loop","mutex-lock","redis","socket","tokio-rs"],"created_at":"2024-11-07T04:27:33.409Z","updated_at":"2025-04-11T03:31:59.559Z","avatar_url":"https://github.com/wildonion.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🇸4 (Sharded Shared State Storage)\n\na very simple implementation of an in-memory data storage like redis which is based on sharded shared sate storage design pattern using standard `HashMap` as the shared data\n\n# 🧪 Usage \n\n```cargo run --bin s4```\n\n# 🛠️ Tools \n\n* tokio select to receive data from jobq channels asyncly \n* tokio spawn to handle incoming packets asyncly and concurrently\n* tokio mutex to acquire the lock on the shared data between tokio green threads asyncly\n* tokio jobq channels to move data between tokio green threads asyncly\n\n* redis for streaming over pubsub channels\n\n# 🚧 WIPs\n\n* implement proper sharding and replication algorithms like assigning each data of a shard to a slot owned by a node by sending them through the threads using jobq channels \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwildonion%2Fredis4","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwildonion%2Fredis4","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwildonion%2Fredis4/lists"}