Just an itsy bitsy b-tree in Go
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE First commit Oct 24, 2018
README.md First commit Oct 24, 2018
btree.go Use 40% min fill Dec 17, 2018
btree_test.go First commit Oct 24, 2018

README.md

tinybtree

GoDoc

Just an itsy bitsy b-tree.

Usage

Keys are strings, values are interfaces.

Functions

Get(key string) (value interface{}, gotten bool)
Set(key string, value interface{}) (prev interface{}, replaced bool)
Delete(key string) (prev interface{}, deleted bool)
Scan(iter func(key string, value interface{}) bool)
Ascend(pivot string, iter func(key string, value interface{}) bool)
Descend(pivot string, iter func(key string, value interface{}) bool)

Example

// Create a btree
var tr tinybtree.BTree

// Set a key. Returns the previous value and ok a previous value exists.
prev, ok := tr.Set("hello", "world")

// Get a key. Returns the value and ok if the value exists.
value, ok := tr.Get("hello")

// Delete a key. Returns the deleted value and ok if the previous value exists.
prev, ok := tr.Delete("hello")

Contact

Josh Baker @tidwall

License

tinybtree source code is available under the MIT License.