{"id":15936270,"url":"https://github.com/syucream/mruby-k2hash","last_synced_at":"2025-11-12T22:02:53.916Z","repository":{"id":145236223,"uuid":"76733277","full_name":"syucream/mruby-k2hash","owner":"syucream","description":"mruby binding of yahoojapan/k2hash","archived":false,"fork":false,"pushed_at":"2017-01-11T14:40:36.000Z","size":35,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-03T13:25:22.095Z","etag":null,"topics":["k2hash","mruby"],"latest_commit_sha":null,"homepage":null,"language":"C","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/syucream.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":"2016-12-17T16:04:54.000Z","updated_at":"2020-08-28T15:34:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"33fc7cb8-8c3f-4d29-b7ff-1a7dabf589c0","html_url":"https://github.com/syucream/mruby-k2hash","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syucream%2Fmruby-k2hash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syucream%2Fmruby-k2hash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syucream%2Fmruby-k2hash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syucream%2Fmruby-k2hash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/syucream","download_url":"https://codeload.github.com/syucream/mruby-k2hash/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240215828,"owners_count":19766478,"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":["k2hash","mruby"],"created_at":"2024-10-07T04:20:50.479Z","updated_at":"2025-11-12T22:02:48.893Z","avatar_url":"https://github.com/syucream.png","language":"C","readme":"# mruby-k2hash\n\n[![Build Status](https://travis-ci.org/syucream/mruby-k2hash.svg?branch=master)](https://travis-ci.org/syucream/mruby-k2hash)\n\nmruby binding of [yahoojapan/k2hash](https://github.com/yahoojapan/k2hash)\n\n# Quickstart\n\n1. build mruby with mruby-k2hash. Or use [the Docker image](https://hub.docker.com/r/syucream/mruby-k2hash/).\n\n```\n# mruby root dir\n$ MRUBY_CONFIG=./path/to/build_config.rb ./minirake\n```\n\n\n\n2. Run mirb and test K2Hash class\n\n```\n$ ./build/host/bin/mirb\nmirb - Embeddable Interactive Ruby Shell\n\n\u003e \n\u003e\n\u003e k2hash = K2Hash.new('/tmp/tmp.k2hash', 0666, K2Hash::WRCREAT)\n =\u003e #\u003cK2Hash:0x127ada0\u003e\n\u003e k2hash.store('key', 'value')\n =\u003e nil\n\u003e k2hash.fetch('key')\n =\u003e \"value\"\n\u003e k2hash.store('key', 'new value')\n =\u003e nil\n\u003e k2hash.fetch('key')\n =\u003e \"new value\"\n\u003e k2hash['key2'] = 'value2'\n =\u003e \"value2\"\n\u003e k2hash['key2']\n =\u003e \"value2\"\n\u003e k2hash.close\n =\u003e nil\n```\n\n# Implemented methods\n\n* [DBM](http://ruby-doc.org/stdlib-2.3.3/libdoc/dbm/rdoc/DBM.html) like methods:\n\n  - `H2Hash` has `each` so you can also use [Enumerable methods](https://ruby-doc.org/core-2.3.3/Enumerable.html).\n\n\n| method      | implemented?       |\n|:------------|--------------------|\n| []          | :heavy_check_mark: |\n| []=         | :heavy_check_mark: |\n| clear       | :heavy_check_mark: |\n| close       | :heavy_check_mark: |\n| closed?     | :heavy_check_mark: |\n| delete      | :heavy_check_mark: |\n| delete_if   | :heavy_check_mark: |\n| reject!     | :heavy_check_mark: |\n| each        | :heavy_check_mark: |\n| each_pair   | :heavy_check_mark: |\n| each_key    | :heavy_check_mark: |\n| each_value  | :heavy_check_mark: |\n| empty?      | :heavy_check_mark: |\n| fetch       | :heavy_check_mark: |\n| has_key?    | :heavy_check_mark: |\n| include?    | :heavy_check_mark: |\n| key?        | :heavy_check_mark: |\n| member?     | :heavy_check_mark: |\n| has_value?  | :heavy_check_mark: |\n| value?      | :heavy_check_mark: |\n| invert      | :heavy_check_mark: |\n| key         | :heavy_check_mark: |\n| keys        | :heavy_check_mark: |\n| length      | :heavy_check_mark: |\n| size        | :heavy_check_mark: |\n| reject      | :heavy_check_mark: |\n| replace     | :heavy_check_mark: |\n| select      | :heavy_check_mark: |\n| shift       | :heavy_check_mark: |\n| store       | :heavy_check_mark: |\n| to_a        | :heavy_check_mark: |\n| to_hash     | :heavy_check_mark: |\n| update      | :heavy_check_mark: |\n| values      | :heavy_check_mark: |\n| values_at   | :heavy_check_mark: |\n\n* subkey\n\n  - `fetch_subkeys(key) -\u003e Array` returns subkey array corresponding to the key str\n  - `store_subkeys(key, subkeys) -\u003e self` set the subkey array to the key str\n\n# TODO\n\n* Support k2hash features. Especially...:\n\n  - open mode\n  - transaction\n  - queue\n  - attributes\n\n# License\n\nMITL\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsyucream%2Fmruby-k2hash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsyucream%2Fmruby-k2hash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsyucream%2Fmruby-k2hash/lists"}