https://github.com/twiny/carbon
a wrapper around BadgerDB providing a simple API.
https://github.com/twiny/carbon
badgerdb cache-storage keyvaluestore
Last synced: 4 months ago
JSON representation
a wrapper around BadgerDB providing a simple API.
- Host: GitHub
- URL: https://github.com/twiny/carbon
- Owner: twiny
- License: mit
- Created: 2021-12-10T17:33:38.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-12-10T20:32:57.000Z (over 3 years ago)
- Last Synced: 2023-07-27T22:43:53.123Z (over 1 year ago)
- Topics: badgerdb, cache-storage, keyvaluestore
- Language: Go
- Homepage:
- Size: 8.79 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Carbon Cache
A wrapper around [BadgerDB](https://github.com/dgraph-io/badger) providing a simple API.**NOTE** This package is provided "as is" with no guarantee. Use it at your own risk and always test it yourself before using it in a production environment. If you find any issues, please [create a new issue](https://github.com/twiny/carbon/issues/new).
## Install
`go get https://github.com/twiny/carbon`## API
```go
Set(key string, val []byte, ttl time.Duration) error
Get(key string) ([]byte, error)
Del(key string) error
ForEach(prefix string, fn func(key string, val []byte) error) error
```## Usage
```go
package mainimport (
"fmt"
"log"
"time""github.com/twiny/carbon"
)func main() {
cache, err := carbon.NewCache("./tmp")
if err != nil {
log.Println(err)
return
}
defer cache.Close()// set
if err := cache.Set("foo", []byte("bar"), 10*time.Minute); err != nil {
log.Println(err)
return
}// get
val, err := cache.Get("foo")
if err != nil {
log.Println(err)
return
}fmt.Println(string(val))
// range
if err := cache.ForEach("", func(key string, val []byte) error {
fmt.Println(key, string(val))
return nil
}); err != nil {
log.Println(err)
return
}// delete
if err := cache.Del("foo"); err != nil {
log.Println(err)
return
}
}
```