Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tidwall/tinybtree

Just an itsy bitsy b-tree in Go
https://github.com/tidwall/tinybtree

Last synced: about 2 months ago
JSON representation

Just an itsy bitsy b-tree in Go

Awesome Lists containing this project

README

        

# `tinybtree`

[![GoDoc](https://godoc.org/github.com/tidwall/tinybtree?status.svg)](https://godoc.org/github.com/tidwall/tinybtree)

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

```go
// 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](http://twitter.com/tidwall)

## License

`tinybtree` source code is available under the MIT [License](/LICENSE).