{"id":21296880,"url":"https://github.com/reddec/storages","last_synced_at":"2025-07-11T18:32:05.895Z","repository":{"id":57499374,"uuid":"150941898","full_name":"reddec/storages","owner":"reddec","description":"Collection of key-value storages adapters  for Golang","archived":false,"fork":false,"pushed_at":"2023-02-14T15:27:26.000Z","size":170,"stargazers_count":18,"open_issues_count":1,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-07-02T11:02:03.833Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://reddec.github.io/storages/","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/reddec.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["http://reddec.net/about/#donate"]}},"created_at":"2018-09-30T07:18:10.000Z","updated_at":"2025-04-08T16:58:22.000Z","dependencies_parsed_at":"2024-06-20T11:16:05.123Z","dependency_job_id":"994b96f7-7cbc-439f-87ee-d6bb6000b6ea","html_url":"https://github.com/reddec/storages","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/reddec/storages","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reddec%2Fstorages","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reddec%2Fstorages/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reddec%2Fstorages/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reddec%2Fstorages/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reddec","download_url":"https://codeload.github.com/reddec/storages/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reddec%2Fstorages/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264870433,"owners_count":23676226,"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-11-21T14:30:20.562Z","updated_at":"2025-07-11T18:32:05.236Z","avatar_url":"https://github.com/reddec.png","language":"Go","funding_links":["http://reddec.net/about/#donate"],"categories":[],"sub_categories":[],"readme":"# Collection of storages (and wrappers)\n[![Documentation](https://img.shields.io/badge/documentation-latest-green)](https://reddec.github.io/storages/)\n[![license](https://img.shields.io/github/license/reddec/storages.svg)](https://github.com/reddec/storages)\n[![](https://godoc.org/github.com/reddec/storages?status.svg)](http://godoc.org/github.com/reddec/storages)\n[![donate](https://img.shields.io/badge/help_by️-donate❤-ff69b4)](http://reddec.net/about/#donate)\n\n\n\nDifferent implementations of storages with same abstract interface:\n\n\n```go\n// Thread-safe storage for key-value\ntype Storage interface {\n\t// Put single item to storage. If already exists - override\n\tPut(key []byte, data []byte) error\n\t// Get item from storage. If not exists - os.ErrNotExist (implementation independent)\n\tGet(key []byte) ([]byte, error)\n\t// Delete key and value\n\tDel(key []byte) error\n\t// Iterate over all keys. Modification during iteration may cause undefined behaviour (mostly - dead-lock)\n\tKeys(handler func(key []byte) error) error\n    // Close storage if needs\n    io.Closer\n}\n```\n\nSee [documentation](https://reddec.github.io/storages/) for details\n\n**one more example...**\n\nYou can create different storage types just by URL (if you imported required package):\n\nFor example, use Redis db as a backend\n\n```go\nstorage, err := std.Create(\"redis://localhost\")\nif err != nil {\n    panic(err)\n}\ndefer storage.Close()\n```\n\n# CLI tools\n\n### Binary\n\nLook to releases section\n\n### Debian/Ubuntu\n\n[![Debian version](https://api.bintray.com/packages/reddec/storages-debian/storages/images/download.svg)](https://bintray.com/reddec/storages-debian/storages/_latestVersion)\n\nAdd public Bintray key\n\n```bash\nsudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 379CE192D401AB61\n```\n\n#### Add repository\n\n* supported distribution: trusty, xenial, bionic, buster, wheezy\n\n```bash\necho \"deb https://dl.bintray.com/reddec/debian {distribution} main\" | sudo tee -a /etc/apt/sources.list\n```\n\n**Ubuntu 18.04 (bionic)**\n\n```bash\necho \"deb https://dl.bintray.com/reddec/debian bionic main\" | sudo tee -a /etc/apt/sources.list\n```\n\n**Ubuntu 16.04 (xenial)**\n\n```bash\necho \"deb https://dl.bintray.com/reddec/debian xenial main\" | sudo tee -a /etc/apt/sources.list\n```\n\n#### Update cache\n\n`sudo apt-get update`\n\n### Install\n\n`sudo apt-get install storages`\n\n### Build from source\n\n* requires Go 1.13+\n\n`go get github.com/reddec/storages/cmd/...`\n\n# License\n\nThe wrappers itself licensed under MIT but used libraries may have different license politics.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freddec%2Fstorages","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freddec%2Fstorages","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freddec%2Fstorages/lists"}