{"id":17286232,"url":"https://github.com/devrandom/rkv","last_synced_at":"2025-09-07T16:33:57.980Z","repository":{"id":56892402,"uuid":"464689","full_name":"devrandom/rkv","owner":"devrandom","description":"A ruby key-value adapter for Cassandra and others","archived":false,"fork":false,"pushed_at":"2010-01-11T22:09:11.000Z","size":88,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-03T05:33:18.749Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devrandom.png","metadata":{"files":{"readme":"README.rdoc","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-01-09T01:45:15.000Z","updated_at":"2013-12-27T21:46:07.000Z","dependencies_parsed_at":"2022-08-21T01:20:52.820Z","dependency_job_id":null,"html_url":"https://github.com/devrandom/rkv","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/devrandom/rkv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devrandom%2Frkv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devrandom%2Frkv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devrandom%2Frkv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devrandom%2Frkv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devrandom","download_url":"https://codeload.github.com/devrandom/rkv/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devrandom%2Frkv/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274064437,"owners_count":25216322,"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","status":"online","status_checked_at":"2025-09-07T02:00:09.463Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-10-15T09:58:46.828Z","updated_at":"2025-09-07T16:33:57.953Z","avatar_url":"https://github.com/devrandom.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"rkv - Ruby Key Value - an adapter on top of various key-value and column stores\n\n== Philosophy\n\nThe API is a nested (multidimensional) Hash.  This allows effective mapping to both column stores and flat KV stores.\n\nFor example, if the Cassandra adapter is used, the first dimension is the column family, the second is the row within the CF and the third is the column within the row.\n\nFor flat KV stores, a key hierarchy is used for efficient mapping.\n\n== Install\n\nInstalling the gem:\n\n  gem install rkv\n\n== Usage\n\n  require 'rubygems'\n  require 'rkv'\n  \n  store = Rkv.open(:cassandra, { :servers =\u003e ['127.0.0.1:9160'], :keyspace =\u003e \"Blog\" })\n  # store = Rkv.open(:memory, :recurse =\u003e {\"Users\" =\u003e \"*\"})\n  # store = Rkv.open(:tokyocabinet, :file =\u003e \"test.tcb\", :recurse =\u003e {\"Users\" =\u003e \"*\"})\n\n  users = store[\"Users\"]\n  \n  user = users[\"5\"]\n  user[\"name\"] = \"Dev Random\"\n  user[\"role\"] = \"admin\"\n\n  puts users[\"3\"].inspect\n  \n  users.batch do\n    users[id1][\"name\"] = \"John Doe\"\n    users[id2][\"name\"] = \"Jane Doe\"\n  end\n\n  user_rels = client[:UserRelationships]\n  user_rels[id1][\"posts\"][Cassandra::UUID.new] = post_id1\n\n== Notes\n\nKeystores have different features.  Operations are mapped to the best of the keystore ability, but some operations may be less efficient or impossible in certain keystores.\n\n== Documentation\n\nRDoc: http://rdoc.info/projects/devrandom/rkv\n\nSee spec/integration/stores_spec.rb for an example program that runs identically on all stores.\n\nGit:\n* http://gitorious.org/cluster-storage/rkv\n* http://github.com/devrandom/rkv\n\n== Supported KV stores\n\n* Cassandra\n* Memory\n* TokyoCabinet\n\n== Planned KV stores\n\n* Voldemort\n* Redis\n* Keyspace\n* SQL\n\n== Roadmap\n\n* Store support\n* Performance testing\n* Keystore feature support matrix\n* Object mapper?\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevrandom%2Frkv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevrandom%2Frkv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevrandom%2Frkv/lists"}