Skip to content
djherbisPublic

About

Database persistance for djherbis/buffer

Resources

Stars

4 stars

Watchers

3 watching

Forks

Latest commit

 

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BufDB

GoDoc Software License Build Status Coverage Status

Usage

This package provides a persistence manager for github.com/djherbis/buffer Buffers.

import (
  "bytes"
  "io/ioutil"
  "os"
  "testing"

  "github.com/djherbis/buffer"

  bolt "go.etcd.io/bbolt"
)

func TestStore(t *testing.T) {
  db, err := bolt.Open("my.db", 0600, nil)
  if err != nil {
    t.Error(err.Error())
  }
  defer os.Remove("my.db")
  defer db.Close()

  store := NewBufferStore(db, []byte("buckets"))

  key := []byte("hello")
  input := []byte("hello world")

  b := buffer.NewPartition(buffer.NewFilePool(10, "."))
  b.Write(input)

  store.Put(key, b)
  buf, err := store.Pull(key)
  if err != nil {
    t.Error(err.Error())
  }

  data, err := ioutil.ReadAll(buf)

  if !bytes.Equal(data, input) {
    t.Errorf("expected %s, got %s", input, data)
  }

  store.Wipe()
}

Installation

go get github.com/djherbis/bufdb

About

Database persistance for djherbis/buffer

Resources

Stars

4 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

⌂ 换网址