nutz is a library for interacting with bolt databases. It removes the boilerplates and stay faithful with the bolt database view of "simple API".
- You want to maintain more than one database
- Your project uses nested buckets extensively.
go get github.com/gernest/nutz
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()
}
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.
Geofrey Ernest geofreyernest@live.com
Twitter : @gernesti
This project is under the MIT License. See the LICENSE file for the full license text.