{"id":18753269,"url":"https://github.com/kpn/cachetory","last_synced_at":"2025-07-17T09:35:06.125Z","repository":{"id":43665519,"uuid":"501171130","full_name":"kpn/cachetory","owner":"kpn","description":"Caching library with support for multiple cache backends","archived":false,"fork":false,"pushed_at":"2025-07-14T11:37:51.000Z","size":714,"stargazers_count":16,"open_issues_count":8,"forks_count":6,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-07-14T13:44:22.322Z","etag":null,"topics":["async-cache","asynchronous","cache","cache-decorators","caching","django-cache","dummy-cache","memory-cache","pypi-package","python-library","python-package","redis-cache","synchronous"],"latest_commit_sha":null,"homepage":"https://kpn.github.io/cachetory/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kpn.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":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-06-08T08:51:45.000Z","updated_at":"2025-07-14T11:37:36.000Z","dependencies_parsed_at":"2023-12-22T14:05:14.122Z","dependency_job_id":"f16e7732-829f-472a-bd38-f905264fcf9b","html_url":"https://github.com/kpn/cachetory","commit_stats":{"total_commits":193,"total_committers":9,"mean_commits":"21.444444444444443","dds":"0.23316062176165808","last_synced_commit":"f119295ef4c41677f50978907afaa6a28e91ae0d"},"previous_names":[],"tags_count":38,"template":false,"template_full_name":null,"purl":"pkg:github/kpn/cachetory","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpn%2Fcachetory","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpn%2Fcachetory/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpn%2Fcachetory/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpn%2Fcachetory/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kpn","download_url":"https://codeload.github.com/kpn/cachetory/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpn%2Fcachetory/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265589589,"owners_count":23793567,"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":["async-cache","asynchronous","cache","cache-decorators","caching","django-cache","dummy-cache","memory-cache","pypi-package","python-library","python-package","redis-cache","synchronous"],"created_at":"2024-11-07T17:25:04.532Z","updated_at":"2025-07-17T09:35:05.904Z","avatar_url":"https://github.com/kpn.png","language":"Python","readme":"# Cachetory\n\n[![PyPI](https://img.shields.io/pypi/v/cachetory?logo=python\u0026logoColor=yellow)](https://pypi.org/project/cachetory/)\n[![Python versions](https://img.shields.io/pypi/pyversions/cachetory?logo=python\u0026logoColor=yellow)](https://pypi.org/project/cachetory/)\n[![Checks](https://img.shields.io/github/actions/workflow/status/kpn/cachetory/check.yml?label=checks\u0026logo=github)](https://github.com/kpn/cachetory/actions/workflows/check.yml)\n[![Coverage](https://codecov.io/gh/kpn/cachetory/branch/main/graph/badge.svg?token=UNYTTvxiWk)](https://codecov.io/gh/kpn/cachetory)\n![Code style](https://img.shields.io/badge/code%20style-ruff-000000.svg)\n\n## Documentation\n\n\u003ca href=\"https://kpn.github.io/cachetory/\"\u003e\n    \u003cimg alt=\"Documentation\" height=\"30em\" src=\"https://img.shields.io/github/actions/workflow/status/kpn/cachetory/docs.yml?label=documentation\u0026logo=github\"\u003e\n\u003c/a\u003e\n\n## Sneak peak\n\n```python\nfrom cachetory import serializers\nfrom cachetory.backends import async_ as async_backends\nfrom cachetory.caches.async_ import Cache\n\n\ncache = Cache[int, bytes](\n    serializer=serializers.from_url(\"pickle://?pickle-protocol=4\"),\n    backend=async_backends.from_url(\"redis://localhost:6379\"),\n)\n\nasync def main() -\u003e None:\n    await cache.set(\"foo\", 42)\n    assert await cache.get(\"foo\") == 42\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkpn%2Fcachetory","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkpn%2Fcachetory","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkpn%2Fcachetory/lists"}