{"id":37050299,"url":"https://github.com/exentials/re-cache","last_synced_at":"2026-01-14T05:50:05.468Z","repository":{"id":68710164,"uuid":"577904882","full_name":"exentials/re-cache","owner":"exentials","description":"Re-Cache is a dockerized in-memory cache key/values data store","archived":false,"fork":false,"pushed_at":"2025-02-03T05:42:33.000Z","size":433,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-22T07:10:30.659Z","etag":null,"topics":["inmemory-cache"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/exentials.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2022-12-13T19:49:32.000Z","updated_at":"2024-08-18T04:51:35.000Z","dependencies_parsed_at":"2024-08-18T16:02:50.984Z","dependency_job_id":null,"html_url":"https://github.com/exentials/re-cache","commit_stats":{"total_commits":2,"total_committers":1,"mean_commits":2.0,"dds":0.0,"last_synced_commit":"65ea793d363b92e3c01f4b6663db187fc92c05df"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/exentials/re-cache","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exentials%2Fre-cache","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exentials%2Fre-cache/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exentials%2Fre-cache/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exentials%2Fre-cache/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/exentials","download_url":"https://codeload.github.com/exentials/re-cache/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exentials%2Fre-cache/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28411575,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T05:26:33.345Z","status":"ssl_error","status_checked_at":"2026-01-14T05:21:57.251Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["inmemory-cache"],"created_at":"2026-01-14T05:50:04.977Z","updated_at":"2026-01-14T05:50:05.459Z","avatar_url":"https://github.com/exentials.png","language":"C#","readme":"# \u003cimg src=\"https://github.com/exentials/re-cache/raw/main/src/re-cache-icon.png\" height=\"48\" width=\"48\" /\u003e Exentials.ReCache\n\nRe-Cache is a dockerized in-memory cache key/values data store, build on top of dotnet the client/server communication use the gRPC protocol to maximize performance.\n\nThe keys/values can be stored in different structure and can be grouped by a namespace, so you can use the same key with different value in a different group or in different structure of data.\n\nSupported structures are `Set` and `HashSet`.\n\n## HOW TO:\n\n## Re-Cache Server\n\nRe-Cache server is provided by a ready to run docker container:\n\n```\ndocker run -p 443:443 -p 80:80 -d exentials/re-cache:latest\n```\n\nTo change the default encription key and authentication account you could add the environment variables:\n\n```\n-e Auth__Secretkey=mysecretkey\n-e Users__AdminUsername=my_admin_username\n-e Users__AdminPassword=my_admin_password\n-e Users__ClientUsername=my_client_username\n-e Users__ClientPassword=my_client_passowrd\n```\n\ngRPC require a secure connection so the container use a self generated certificate.\n\nTo test the server use the provided [Re-Cache Cli](https://github.com/exentials/re-cache/releases) console application; the default password is `recachepwd`.\n\n```\nrecli connect \u003chost\u003e -p recachepwd\n```\n\nRe-Cache server expose also a web page, intentions are to provide a dashboard to show the cache statistics and allow the server administration.\n\nThe server implements also gRPC transcoding to OpenAPI endpoint.\n\nRe-Cache server implements also an automatic backup/restore to recover stored data during the start process.\n\n## Re-Cache Client\n\nTo implement client service communication in your application use the provided NUGET package library.\n\n```\ndotnet add package Exentials.ReCache.Client\n```\n\nThen add the client configuration programmatically\n\n```csharp\nbuilder.Services.AddReCacheClient(options =\u003e\n{\n    options.SslUrl = \"https://localhost\";\n    options.Token = \"\u003ctoken\u003e\";\n    options.KeepAlive = true;\n    options.IgnoreSslCertificate = true;  // to allow self generated certificate\n});\n```\n\nor by the appsettings.json\n\n```json\n\"ReCache\": {\n    \"SslUrl\": \"https://localhost\",\n    \"Token\": \"\u003ctoken\u003e\",\n    \"KeepAlive\": true,\n    \"IgnoreSslCertificate\": true\n}\n```\n\nand then\n\n```csharp\nbuilder.Services.Configure\u003cReCacheClientOptions\u003e(builder.Configuration.GetSection(ReCacheClientOptions.ReCache));\nbuilder.Services.AddReCacheClient();\n```\n\nTo retrieve the token use the server page and post username and password (default/recachepwd).\n\n\u003cbr/\u003e\n\n# TODO:\n\n- Add a Queue structure\n- Create `@exentials/re-cache-node` for NodeRed node communication.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexentials%2Fre-cache","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexentials%2Fre-cache","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexentials%2Fre-cache/lists"}