{"id":25745998,"url":"https://github.com/cyrix126/mnemosyne","last_synced_at":"2026-04-30T19:31:57.121Z","repository":{"id":243853427,"uuid":"813644287","full_name":"Cyrix126/Mnemosyne","owner":"Cyrix126","description":"Mnemosyne is a http request caching in memory proxy API.","archived":false,"fork":false,"pushed_at":"2024-07-12T07:16:18.000Z","size":69,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-03T21:18:54.825Z","etag":null,"topics":["api-rest","caching-proxy","http-caching","openapi","rust","server"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Cyrix126.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-11T13:21:08.000Z","updated_at":"2024-07-23T23:15:45.000Z","dependencies_parsed_at":"2024-06-11T14:56:28.603Z","dependency_job_id":"29d5574b-f91c-4146-a815-b4476a03834d","html_url":"https://github.com/Cyrix126/Mnemosyne","commit_stats":null,"previous_names":["cyrix126/mnemosyne"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Cyrix126/Mnemosyne","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cyrix126%2FMnemosyne","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cyrix126%2FMnemosyne/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cyrix126%2FMnemosyne/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cyrix126%2FMnemosyne/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cyrix126","download_url":"https://codeload.github.com/Cyrix126/Mnemosyne/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cyrix126%2FMnemosyne/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32475191,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"ssl_error","status_checked_at":"2026-04-30T13:12:06.837Z","response_time":57,"last_error":"SSL_read: 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":["api-rest","caching-proxy","http-caching","openapi","rust","server"],"created_at":"2025-02-26T11:29:30.254Z","updated_at":"2026-04-30T19:31:57.107Z","avatar_url":"https://github.com/Cyrix126.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mnemosyne\nMnemosyne is a http request caching in memory proxy API.\n## Status of development\nAll features are present, but the software is very new and not tested for production.\n### TODO\n- [x] allows to limit cache by size\n- [x] organize code in modules\n- [x] tracing\n- [x] tests\n- [x] documentation\n- [ ] benchmarks/optimizations\n## Description\nMnemosyne is placed between your load balancer (ex: nginx) and your server applications that needs their requests to be cached. It will optimize the resources by caching responses and adding caching headers that will ask clients to re-use the cache locally. The cache will be expired based on activity and from manual invalidation.\n## Objectives\nThis software is meant to add caching capability to your backend service without adding any code and be agnostic about them. \nIt must give a very good performance for common usages of websites, but will sacrifice small performance for modularity and easier maintenance if needed.\n## Features\n- configuration file\n- multiple backend service possible, based on HOST header to decide where to redirect.\n- well thought expiration of cache (thanks [moka](https://github.com/moka-rs/moka))\n- add etag header\n- return non modified status when client has a valid etag \n- takes into account Vary header from server (will save different cache object for every variation of the specified header)\n- let backend service decide his own caching controls.\n- admin API\n  - update rules of redirection without restart or loosing current cache.\n  - cache invalidation\n  - update fallback\n  - get raw cache content\n  - get stats of cache \n## Usage\nConfigure your reverse proxy to redirect requests you want to cache on Mnemosyne.  \n**Warning**: make sure your reverse proxy does not apply unwanted modification on HOST header of your requests.  \nConfigure at start the HOST value that will trigger a redirection to a backend service or use the administrator API of Mnemosyne to configure it at runtime.  \n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyrix126%2Fmnemosyne","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcyrix126%2Fmnemosyne","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyrix126%2Fmnemosyne/lists"}