Popularity
7.0
Declining
Activity
3.6
Stable
38
4
8
Programming language: Crystal
License: MIT License
Tags:
Database Drivers
Latest version: v0.5.1
rocksdb.cr alternatives and similar shards
Based on the "Database Drivers" category.
Alternatively, view rocksdb.cr alternatives based on common mentions on social networks and blogs.
InfluxDB high-performance time series database
Collect, organize, and act on massive volumes of high-resolution data to power real-time intelligent systems.
Promo
influxdata.com

Do you think we are missing an alternative of rocksdb.cr or a related project?
README
rocksdb.cr 
RocksDB client for Crystal.
- crystal: 0.27.2 0.33.0 1.0.0
Supported API
See [API](./API.md)
Installation
Add this to your application's shard.yml
:
dependencies:
rocksdb:
github: maiha/rocksdb.cr
version: 1.0.0
Usage
require "rocksdb"
db = RocksDB::DB.new("tmp/db1")
db.put("foo", "1")
db.get("foo") # => "1"
db.delete("foo")
db.get("foo") # => ""
db.get?("foo") # => nil
db.get!("foo") # raise RocksDB::NotFound.new("foo")
db.close
readonly mode
db = RocksDB::DB.new("tmp/db1", readonly: true)
# or RocksDB::DB.read("tmp/db1")
db.put("foo", "1") # raise RocksDB::Error("Not supported operation in read only mode.")
Iterations
3.times{|i| db.put("k#{i}", i) }
db.keys # => ["k0","k1","k2"]
db.keys(2) # => ["k0","k1"]
db.each do |k,v|
...
Iterator
iter = db.new_iterator
iter.key # => "k0"
iter.next
iter.value # => "1"
iter.first
iter.key # => "k0"
iter.seek("k2")
iter.next
iter.valid? # => false
iter.close # memory leaks when you forget this
- same as
each
iter = db.new_iterator
iter.first
while (iter.valid?)
# yield {iter.key, iter.value}
iter.next
end
iter.close # memory leaks when you forget this
binary data
Although all data are stored as Binary in RocksDB, return value will be converted to String when accessed by String key.
db.put(Bytes[0], Bytes[9])
db.get(Bytes[0]) # => Bytes[9]
db.get("\u{0}") # => "\t"
binary iterator
binary_XXX
is available to treat data as binary
binary_keys
binary_each
new_binary_iterator
db.keys # => ["\t"]
db.binary_keys # => [Bytes[9]]
database options
options
for opening databaseread_options
for reading datawrite_options
for writing data
opts = RocksDB::Options.new
opts.set_create_if_missing(1)
ropts = RocksDB::ReadOptions.new
ropts.set_verify_checksum(1)
wopts = RocksDB::WriteOptions.new
wopts.set_sync(1)
wopts.disable_wal(1)
db = RocksDB::DB.new("tmp/db1", options: opts, read_options: ropts, write_options: wopts)
- all options: [options.cr](./src/rocksdb/options.cr)
Roadmap
0.5.0
- [x] Iterations for Binary
Testing
- Now Travis CI is ready by https://github.com/maiha/rocksdb.cr/pull/3
Contributing
- Fork it ( https://github.com/maiha/rocksdb.cr/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
Contributors
- maiha maiha - creator, maintainer