{"id":15890626,"url":"https://github.com/dimfeld/gocache","last_synced_at":"2025-04-02T17:22:07.815Z","repository":{"id":16886717,"uuid":"19647340","full_name":"dimfeld/gocache","owner":"dimfeld","description":"Go library with various caching functionality","archived":false,"fork":false,"pushed_at":"2014-05-18T22:24:07.000Z","size":204,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-08T08:10:02.004Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/dimfeld.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":"2014-05-10T17:21:20.000Z","updated_at":"2017-12-23T08:11:40.000Z","dependencies_parsed_at":"2022-07-26T11:31:57.339Z","dependency_job_id":null,"html_url":"https://github.com/dimfeld/gocache","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimfeld%2Fgocache","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimfeld%2Fgocache/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimfeld%2Fgocache/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimfeld%2Fgocache/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dimfeld","download_url":"https://codeload.github.com/dimfeld/gocache/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246856825,"owners_count":20845026,"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":[],"created_at":"2024-10-06T07:07:11.141Z","updated_at":"2025-04-02T17:22:07.795Z","avatar_url":"https://github.com/dimfeld.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"gocache [![Build Status](https://travis-ci.org/dimfeld/gocache.png?branch=master)](https://travis-ci.org/dimfeld/gocache) [![GoDoc](http://godoc.org/github.com/dimfeld/gocache?status.png)](http://godoc.org/github.com/dimfeld/gocache)\n=======\n\nGo library with various caching functionality\n\n\n\n## Interface\nThe Cache interface defines Get, Set, and Del operations, allowing cache objects to be interchanged easily.\n\nFor each of these functions, the key is a string and the value is the Object type, which contains a []byte slice with the data and a timestamp.\n\n\n## Functionality\n\n### MemoryCache\nThis is a simple cache that stores objects in memory. It has an optional object size\nlimit and a total size limit, and will evict items when the total memory usage\nexceeds the limit.\n\n### DiskCache\nThis is a cache that stores objects on disk under a given directory. The\nkey passed to the cache forms the path, and any subdirectories present in the path\nare created.\n\nThe DiskCache.ScanExisting function populates the cache's item list from the existing files in\nthe cache directory, if desired.\n\n### MultiLevel\nMultiLevel is a wrapper for multiple Caches. It starts with the first cache,\nand on a miss queries the upper levels. When an upper-level cache hits, the item\nis filled into the lower-level caches.\n\n### SplitSize\nSplitSize is a wrapper for multiple Caches that delegates objects of different sizes\nto different caches. This can be used, for example, with two MemoryCache objects\nto ensure that a few large objects will not evict the smaller objects in the cache.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdimfeld%2Fgocache","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdimfeld%2Fgocache","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdimfeld%2Fgocache/lists"}