nut
github.com/gernest/nutz
go get github.com/gernest/nutz
nut

github.com/gernest/nutz

A cool way to work with bolt database buckets

by Geofrey Ernest

v0.0.0-20160519070250-0bf9baeac759 (see all)License:MIT
go get github.com/gernest/nutz
Readme

nutz Build Status GoDoc Coverage Status

nutz is a library for interacting with bolt databases. It removes the boilerplates and stay faithful with the bolt database view of "simple API".

Where is nutz useful

  • You want to maintain more than one database
  • Your project uses nested buckets extensively.

Installation

go get github.com/gernest/nutz

How to use

package main

import (
    "fmt"

    "github.com/gernest/nutz"
)

func main() {
    databaseName := "my-databse.db"

    // ntz.NewStorage takes the same arguments as *bolt.Open. The differnce is with
    // nutz nothing is opened.
    db := nutz.NewStorage(databaseName, 0600, nil)

    // Creates a new record in the bucket library with key  "lady morgana" and
    // value []byte("A mist of avalon")
    db.Create("library", "lady morgana", []byte("A mist of avalon"))

    // If you want to create a record which will be deep inside buckets. lets say
    // you want to store a record for a teacher. The buckets will be like
    // city>school>class>teacher.
    db.Create("city", "john Doe", []byte("scientist"), "school", "class", "teacher")

    // Retrieving records from a bolt database.
    d := db.Get("library", "lady morgana")

    fmt.Println(string(d.Data) == "A mist of avalon") //=> true

    // lets check if there was any error
    fmt.Println(d.Error) //=> nil

    // Retriving nested buckets .
    n:=db.Get("city","john Doe","school","class","teacher")

    fmt.Println(string(n.Data)=="scientist") //=> true

    // Lets delete the database
    db.DeleteDatabase()

}

Contributing

Start with clicking the star button to make the author and his neighbors happy. Then fork it and submit a pull request for whatever change you want to be added to this project.

Or, open an issue for any questions.

Author

Geofrey Ernest geofreyernest@live.com

Twitter : @gernesti

License

This project is under the MIT License. See the LICENSE file for the full license text.

GitHub Stars

12

LAST COMMIT

6yrs ago

MAINTAINERS

0

CONTRIBUTORS

3

OPEN ISSUES

0

OPEN PRs

0
VersionTagPublished
v0.0.0-20160519070250-0bf9baeac759
3yrs ago
No alternatives found
No tutorials found
Add a tutorial