Goleveldb

LevelDB key/value database in Go.
Alternatives To Goleveldb
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Goleveldb5,5751,2772,0002 months ago6August 19, 2021102bsd-2-clauseGo
LevelDB key/value database in Go.
Ardb1,535
3 years ago66bsd-3-clauseC++
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.
Leveldb1,4113831607 months ago12June 26, 201934apache-2.0Java
Port of LevelDB to Java
Icefiredb975
2 hours ago5mitGo
@IceFireLabs -> IceFireDB is a database built for web3.0 It strives to fill the gap between web2 and web3.0 with a friendly database experience, making web3 application data storage more convenient, and making it easier for web2 applications to achieve decentralization and data immutability.
Nano Sql77119122 years ago154June 03, 2019n,ullmitTypeScript
Universal database layer for the client, server & mobile devices. It's like Lego for databases.
Imposm3619
7 months ago17October 11, 202164apache-2.0Go
Imposm imports OpenStreetMap data into PostGIS
Objective Leveldb436
293 years ago15January 23, 20167mitObjective-C
An Objective-C database library built over Google's LevelDB
Leveldb401
4 years ago34bsd-3-clauseC++
Clone of http://code.google.com/p/leveldb/
Wickdb343
2 years ago13otherRust
Pure Rust LSM-tree based embedded storage engine
Multilevel341190815 years ago45February 10, 201818JavaScript
Expose a LevelDB over the network
Alternatives To Goleveldb
Select To Compare


Alternative Project Comparisons
Readme

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.14 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.

Popular Database Projects
Popular Leveldb Projects
Popular Data Storage Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Go
Database
Leveldb
Bloom Filter