{"id":20926411,"url":"https://github.com/gokceneraslan/rcppleveldb","last_synced_at":"2025-05-13T17:33:39.936Z","repository":{"id":145565945,"uuid":"42920750","full_name":"gokceneraslan/rcppleveldb","owner":"gokceneraslan","description":"Rcpp bindings for Google's leveldb","archived":false,"fork":false,"pushed_at":"2016-01-19T10:54:29.000Z","size":13,"stargazers_count":7,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-03-22T22:57:13.514Z","etag":null,"topics":["leveldb","leveldb-binding","r","rcpp"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gokceneraslan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-09-22T08:17:22.000Z","updated_at":"2023-04-18T10:40:48.915Z","dependencies_parsed_at":"2023-04-18T10:40:48.840Z","dependency_job_id":null,"html_url":"https://github.com/gokceneraslan/rcppleveldb","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gokceneraslan%2Frcppleveldb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gokceneraslan%2Frcppleveldb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gokceneraslan%2Frcppleveldb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gokceneraslan%2Frcppleveldb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gokceneraslan","download_url":"https://codeload.github.com/gokceneraslan/rcppleveldb/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225249126,"owners_count":17444383,"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":["leveldb","leveldb-binding","r","rcpp"],"created_at":"2024-11-18T20:38:13.085Z","updated_at":"2024-11-18T20:38:15.035Z","avatar_url":"https://github.com/gokceneraslan.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"## RcppLevelDB [![License](http://img.shields.io/badge/license-GPL%20%28%3E=%202%29-brightgreen.svg?style=flat)](http://www.gnu.org/licenses/gpl-2.0.html)\n\nRcppLevelDB is a Rcpp based LevelDB binding for R\n\n### Dependencies\n\n- [leveldb](https://github.com/google/leveldb), leveldb C++ library, e.g. via [libleveldb-dev](https://packages.debian.org/sid/libleveldb-dev) on Debian or Ubuntu\n- [Rcpp](https://github.com/RcppCore/Rcpp) for seamless R and C++ integration\n- [RApiSerialize](https://github.com/eddelbuettel/rapiserialize) for C-level serialization from the R API\n\n### Getting Started\n\n```r\nlibrary(RcppLevelDB)\n\nldb \u003c- new(LevelDB, 'my-leveldb') #creates the DB, if not exists\n\nldb$Put('key1', list(a=c(1,2,3), b='sometext', c=42))\n#\u003e[1] TRUE\nldb$Put('anotherkey', 'somevalue')\n#\u003e[1] TRUE\n\n#vectorized Get \u0026 Delete operations\nldb$Get(c('key1', 'anotherkey'))\n#\u003e[[1]]\n#\u003e[[1]]$a\n#\u003e[1] 1 2 3\n#\u003e\n#\u003e[[1]]$b\n#\u003e[1] \"sometext\"\n#\u003e\n#\u003e[[1]]$c\n#\u003e[1] 42\n#\u003e\n#\u003e\n#\u003e[[2]]\n#\u003e[1] \"somevalue\"\n#\u003e\n\n#Iteration\nldb$StartIteration()\n#\u003e[1] TRUE\nldb$IterNext()\n#\u003e[[1]]\n#\u003e[1] \"anotherkey\"\n#\u003e\n#\u003e[[2]]\n#\u003e[1] \"somevalue\"\n#\u003e\n\u003e ldb$IterNext()\n#\u003e[[1]]\n#\u003e[1] \"key1\"\n#\u003e\n#\u003e[[2]]\n#\u003e[[2]]$a\n#\u003e[1] 1 2 3\n#\u003e\n#\u003e[[2]]$b\n#\u003e[1] \"sometext\"\n#\u003e\n#\u003e[[2]]$c\n#\u003e[1] 42\n#\u003e\nldb$IterNext()\n#\u003e[[1]]\n#\u003e[1] NA\n#\u003e\n#\u003e \n\n#Deletion\nldb$Delete(c('key1', 'anotherkey'))\n#\u003e[1] TRUE TRUE\nldb$Get(c('key1', 'anotherkey'))\n#\u003e[[1]]\n#\u003e[1] NA\n#\u003e\n#\u003e[[2]]\n#\u003e[1] NA\n#\u003e\nrm(ldb) #to close the database safely\ngc() # remove all handles\n```\n\n### TODO\n\n- Expose `Options/ReadOptions/WriteOptions` structs to R\n- Add default arguments to constructor and Put/Get/Delete methods e.g. `create_if_missing=TRUE`, `sync=FALSE` etc.\n- Add support for BloomFilter policies, WriteBatch, and Iterators\n- Add RepairDB and DestroyDB functions\n- Something like `Structured Get` operation: create a data.frame out of values of the given query keys, when the values have a pre-defined structure\n- [plyvel](https://plyvel.readthedocs.org/en/latest/api.html) is a nice leveldb binding example to get some influence regarding new features\n\n### Authors\n\nGökcen Eraslan, based on RcppRedis by Dirk Eddelbuettel\n\nSupport for iterators was added by Gabe Rudy.\n\n### License\n\nGPL (\u003e= 2)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgokceneraslan%2Frcppleveldb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgokceneraslan%2Frcppleveldb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgokceneraslan%2Frcppleveldb/lists"}