All Projects → syndtr → Goleveldb

syndtr / Goleveldb

Licence: bsd-2-clause
LevelDB key/value database in Go.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Goleveldb

Objective Leveldb
An Objective-C database library built over Google's LevelDB
Stars: ✭ 446 (-90.68%)
Mutual labels:  database, leveldb
Ldb
A C++ REPL / CLI for LevelDB
Stars: ✭ 201 (-95.8%)
Mutual labels:  database, leveldb
Nano Sql
Universal database layer for the client, server & mobile devices. It's like Lego for databases.
Stars: ✭ 717 (-85.01%)
Mutual labels:  database, leveldb
Lev
The complete REPL & CLI for managing LevelDB instances.
Stars: ✭ 295 (-93.83%)
Mutual labels:  database, leveldb
Ardb
A redis protocol compatible nosql, it support multiple storage engines as backend like Google's LevelDB, Facebook's RocksDB, OpenLDAP's LMDB, PerconaFT, WiredTiger, ForestDB.
Stars: ✭ 1,707 (-64.31%)
Mutual labels:  database, leveldb
Wickdb
Pure Rust LSM-tree based embedded storage engine
Stars: ✭ 298 (-93.77%)
Mutual labels:  database, leveldb
Performance
⏱ PHP performance tool analyser your script on time, memory usage and db query. Support Laravel and Composer for web, web console and command line interfaces.
Stars: ✭ 429 (-91.03%)
Mutual labels:  database
Coast
The fullest full stack clojure web framework
Stars: ✭ 442 (-90.76%)
Mutual labels:  database
Edge Sql
Cloudflare Workers providing a SQL API
Stars: ✭ 429 (-91.03%)
Mutual labels:  database
Unrealm
Unrealm is an extension on RealmCocoa, which enables Swift native types to be saved in Realm.
Stars: ✭ 425 (-91.11%)
Mutual labels:  database
Graphql Compiler
Turn complex GraphQL queries into optimized database queries.
Stars: ✭ 447 (-90.65%)
Mutual labels:  database
Ruby Pg
A PostgreSQL client library for Ruby
Stars: ✭ 446 (-90.68%)
Mutual labels:  database
Ramsql
In-memory SQL engine in Go sql/driver for testing purpose
Stars: ✭ 437 (-90.86%)
Mutual labels:  database
Tempesta
The Linux Application Delivery Controller
Stars: ✭ 429 (-91.03%)
Mutual labels:  database
Android Orma
An ORM for Android with type-safety and painless smart migrations
Stars: ✭ 442 (-90.76%)
Mutual labels:  database
Tpt Oracle
Tanel Poder's Troubleshooting & Performance Tools for Oracle Databases
Stars: ✭ 429 (-91.03%)
Mutual labels:  database
H Store
H-Store Distributed Main Memory OLTP Database System
Stars: ✭ 428 (-91.05%)
Mutual labels:  database
Siridb Server
SiriDB is a highly-scalable, robust and super fast time series database. Build from the ground up SiriDB uses a unique mechanism to operate without a global index and allows server resources to be added on the fly. SiriDB's unique query language includes dynamic grouping of time series for easy analysis over large amounts of time series.
Stars: ✭ 438 (-90.84%)
Mutual labels:  database
Tensorbase
TensorBase BE is building a high performance, cloud neutral bigdata warehouse for SMEs fully in Rust.
Stars: ✭ 440 (-90.8%)
Mutual labels:  database
Lodash Id
Makes it easy to manipulate id-based resources with lodash or lowdb
Stars: ✭ 434 (-90.93%)
Mutual labels:  database

This is an implementation of the LevelDB key/value database in the Go programming language.

Build Status

Installation

go get github.com/syndtr/goleveldb/leveldb

Requirements

  • Need at least go1.5 or newer.

Usage

Create or open a database:

// The returned DB instance is safe for concurrent use. Which mean that all
// DB's methods may be called concurrently from multiple goroutine.
db, err := leveldb.OpenFile("path/to/db", nil)
...
defer db.Close()
...

Read or modify the database content:

// Remember that the contents of the returned slice should not be modified.
data, err := db.Get([]byte("key"), nil)
...
err = db.Put([]byte("key"), []byte("value"), nil)
...
err = db.Delete([]byte("key"), nil)
...

Iterate over database content:

iter := db.NewIterator(nil, nil)
for iter.Next() {
	// Remember that the contents of the returned slice should not be modified, and
	// only valid until the next call to Next.
	key := iter.Key()
	value := iter.Value()
	...
}
iter.Release()
err = iter.Error()
...

Seek-then-Iterate:

iter := db.NewIterator(nil, nil)
for ok := iter.Seek(key); ok; ok = iter.Next() {
	// Use key/value.
	...
}
iter.Release()
err = iter.Error()
...

Iterate over subset of database content:

iter := db.NewIterator(&util.Range{Start: []byte("foo"), Limit: []byte("xoo")}, nil)
for iter.Next() {
	// Use key/value.
	...
}
iter.Release()
err = iter.Error()
...

Iterate over subset of database content with a particular prefix:

iter := db.NewIterator(util.BytesPrefix([]byte("foo-")), nil)
for iter.Next() {
	// Use key/value.
	...
}
iter.Release()
err = iter.Error()
...

Batch writes:

batch := new(leveldb.Batch)
batch.Put([]byte("foo"), []byte("value"))
batch.Put([]byte("bar"), []byte("another value"))
batch.Delete([]byte("baz"))
err = db.Write(batch, nil)
...

Use bloom filter:

o := &opt.Options{
	Filter: filter.NewBloomFilter(10),
}
db, err := leveldb.OpenFile("path/to/db", o)
...
defer db.Close()
...

Documentation

You can read package documentation here.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].