Added support for Badger as an alternative storage backend

This commit is contained in:
Pijus Kamandulis
2025-03-12 21:06:10 +02:00
parent e526b2269e
commit 813b9faeaa
25 changed files with 1574 additions and 458 deletions

View File

@@ -0,0 +1,36 @@
package badgerdatastore
import (
"encoding/gob"
"github.com/dgraph-io/badger/v4"
"github.com/pikami/cosmium/internal/logger"
)
type BadgerDataStore struct {
db *badger.DB
}
func NewBadgerDataStore() *BadgerDataStore {
gob.Register([]interface{}{})
badgerOpts := badger.DefaultOptions("").WithInMemory(true)
db, err := badger.Open(badgerOpts)
if err != nil {
panic(err)
}
return &BadgerDataStore{
db: db,
}
}
func (r *BadgerDataStore) Close() {
r.db.Close()
}
func (r *BadgerDataStore) DumpToJson() (string, error) {
logger.ErrorLn("Badger datastore does not support state export currently.")
return "{}", nil
}