{"id":16064675,"url":"https://github.com/nlfiedler/dart-rocksdb","last_synced_at":"2026-05-13T12:34:21.614Z","repository":{"id":68522453,"uuid":"236660504","full_name":"nlfiedler/dart-rocksdb","owner":"nlfiedler","description":"Dart bindings for the RocksDB key-value store.","archived":false,"fork":false,"pushed_at":"2020-04-18T17:00:44.000Z","size":189,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-23T02:47:07.456Z","etag":null,"topics":["dart","database","rocksdb"],"latest_commit_sha":null,"homepage":null,"language":"Dart","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/nlfiedler.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-28T04:52:24.000Z","updated_at":"2020-04-18T17:00:47.000Z","dependencies_parsed_at":"2023-06-08T13:15:41.187Z","dependency_job_id":null,"html_url":"https://github.com/nlfiedler/dart-rocksdb","commit_stats":{"total_commits":150,"total_committers":5,"mean_commits":30.0,"dds":"0.18666666666666665","last_synced_commit":"e6a7c23f10653484194b2e6d5c2e2ea91d1563c7"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nlfiedler/dart-rocksdb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nlfiedler%2Fdart-rocksdb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nlfiedler%2Fdart-rocksdb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nlfiedler%2Fdart-rocksdb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nlfiedler%2Fdart-rocksdb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nlfiedler","download_url":"https://codeload.github.com/nlfiedler/dart-rocksdb/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nlfiedler%2Fdart-rocksdb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32982855,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T11:31:52.688Z","status":"ssl_error","status_checked_at":"2026-05-13T11:31:52.072Z","response_time":115,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["dart","database","rocksdb"],"created_at":"2024-10-09T05:09:05.133Z","updated_at":"2026-05-13T12:34:21.598Z","avatar_url":"https://github.com/nlfiedler.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dart-rocksdb\n\n## Overview\n\nThis [Dart](https://dart.dev) package is a wrapper for the [RocksDB](https://rocksdb.org) library. RocksDB is an embeddable persistent key-value store for fast storage. This package aims to expose the RocksDB API in a Dart-friendly fashion.\n\n## Platform Support\n\n### Tested\n\n- Linux\n- macOS\n\n### Not Yet Tested\n\n- Android\n- iOS\n- Windows\n\n### Unsupported\n\n- JavaScript: Due to the native components there is little chance this package will work in JavaScript.\n\n## Basic Usage\n\nStart by building the package's native components and running the tests: see [Build and Test](#build-and-test) below. Eventually this package will mature to the point of being published on [pub.dev](https://pub.dev), but for now it is necessary to build everything locally.\n\nSee the `example/main.dart` for an example of how to read, write, and iterate over keys and values. The `example/isolate.dart` code demonstrates accessing a single RocksDB instance from multiple isolates. The `example/json.dart` file shows how to configure custom encoders for keys and values.\n\n## Build and Test\n\nBefore beginning, use the instructions in [INSTALL.md](./INSTALL.md) as a guide for setting up your system to build the package and its dependencies. When building RocksDB itself, use the `PORTABLE=1` environment setting to build a portable version of the library.\n\n### Linux\n\n```shell\n$ git submodule update --init\n$ cd rocksdb \u0026\u0026 EXTRA_CXXFLAGS='-fPIC' PORTABLE=1 make static_lib\n$ make clean all\n$ pub get\n$ pub run test\n```\n\n### macOS\n\n```shell\n$ git submodule update --init\n$ cd rocksdb \u0026\u0026 PORTABLE=1 make static_lib\n$ make clean all\n$ pub get\n$ pub run test\n```\n\nOn recent releases of macOS, it may be necessary to remove the code signature from the `dart` binary, otherwise the OS will prohibit linking with unsigned libraries, like the one built by this package. See [issue #38314](https://github.com/dart-lang/sdk/issues/38314) for additional information and the current status.\n\n```shell\n$ codesign --remove-signature $(which dart)\n```\n\n## Feature Support\n\n- [x] Read and write keys\n- [x] Forward iteration\n- [x] Multi-isolate\n- [ ] Backward iteration\n- [ ] Column Families\n- [ ] Snapshots\n- [ ] Bulk get / put\n\n## Custom Encoding and Decoding\n\nUsing the `RocksDB.openUtf8()` function your application can open a database whose keys and values are `Strings`. However, you can instead specify `keyEncoding` and `valueEncoding` when calling `RocksDB.open()` to open a database with keys and values whose encodings are defined by your application. See [example/json.dart](./example/json.dart) for an example which stores Dart objects in the database using JSON.\n\n## Contributing\n\nFeedback and pull requests are welcome.\n\n## History\n\nThis package was originally [created](https://github.com/adamlofts/leveldb_dart) in 2016 by Adam Lofts as a wrapper for [LevelDB](https://github.com/google/leveldb/).\n\nIn early 2019 Logan Gorence [converted](https://github.com/SpinlockLabs/rocksdb-dart) the code to link with RocksDB.\n\nNathan rebuilt the repository history by merging both Adam's and Logan's repositories, then filtering out the frequently updated, and potentially very large, build artifacts in the `lib` directory.\n\n## Resources\n\n### Compiling and Linking\n\nFor someone who is not all that familiar with C programming, these resources are very helpful for understanding the process of compiling and linking C/C++ libraries.\n\n* http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html\n* https://www.cprogramming.com/tutorial/shared-libraries-linux-gcc.html\n* https://eli.thegreenplace.net/2013/07/09/library-order-in-static-linking\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnlfiedler%2Fdart-rocksdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnlfiedler%2Fdart-rocksdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnlfiedler%2Fdart-rocksdb/lists"}