kayos@tcp.direct b85255196b | ||
---|---|---|
.. | ||
LICENSE | ||
README.md | ||
bitcask.go | ||
bitcask_search.go | ||
bitcask_search_test.go | ||
bitcask_test.go | ||
errors.go | ||
keeper_test.go |
bitcask
import "git.tcp.direct/tcp.direct/database/bitcask"
Documentation
func SetDefaultBitcaskOptions
func SetDefaultBitcaskOptions(bitcaskopts ...bitcask.Option)
SetDefaultBitcaskOptions options will set the options used for all subsequent bitcask stores that are initialized.
func WithMaxDatafileSize
func WithMaxDatafileSize(size int) bitcask.Option
WithMaxDatafileSize is a shim for bitcask's WithMaxDataFileSize function.
func WithMaxKeySize
func WithMaxKeySize(size uint32) bitcask.Option
WithMaxKeySize is a shim for bitcask's WithMaxKeySize function.
func WithMaxValueSize
func WithMaxValueSize(size uint64) bitcask.Option
WithMaxValueSize is a shim for bitcask's WithMaxValueSize function.
type DB
type DB struct {
}
DB is a mapper of a Filer and Searcher implementation using Bitcask.
func OpenDB
func OpenDB(path string) *DB
OpenDB will either open an existing set of bitcask datastores at the given directory, or it will create a new one.
func (*DB) AllStores
func (db *DB) AllStores() []database.Filer
AllStores returns a list of all bitcask datastores.
func (*DB) Close
func (db *DB) Close(storeName string) error
Close is a simple shim for bitcask's Close function.
func (*DB) CloseAll
func (db *DB) CloseAll() error
CloseAll closes all bitcask datastores.
func (*DB) Init
func (db *DB) Init(storeName string, opts ...any) error
Init opens a bitcask store at the given path to be referenced by storeName.
func (*DB) Path
func (db *DB) Path() string
Path returns the base path where we store our bitcask "stores".
func (*DB) Sync
func (db *DB) Sync(storeName string) error
Sync is a simple shim for bitcask's Sync function.
func (*DB) SyncAll
func (db *DB) SyncAll() error
SyncAll syncs all bitcask datastores.
func (*DB) SyncAndCloseAll
func (db *DB) SyncAndCloseAll() error
SyncAndCloseAll implements the method from Keeper to sync and close all bitcask stores.
func (*DB) With
func (db *DB) With(storeName string) database.Store
With calls the given underlying bitcask instance.
func (*DB) WithNew
func (db *DB) WithNew(storeName string) database.Filer
WithNew calls the given underlying bitcask instance, if it doesn't exist, it creates it.
type Store
type Store struct {
*bitcask.Bitcask
database.Searcher
}
Store is an implmentation of a Filer and a Searcher using Bitcask.
func (Store) Backend
func (s Store) Backend() any
Backend returns the underlying bitcask instance.
func (Store) Keys
func (s Store) Keys() (keys [][]byte)
Keys will return all keys in the database as a slice of byte slices.
func (Store) PrefixScan
func (s Store) PrefixScan(prefix string) (<-chan *kv.KeyValue, chan error)
PrefixScan will scan a Store for all keys that have a matching prefix of the given string and return a map of keys and values. (map[Key]Value)
func (Store) Search
func (s Store) Search(query string) (<-chan *kv.KeyValue, chan error)
Search will search for a given string within all values inside of a Store. Note, type casting will be necessary. (e.g: []byte or string)
func (Store) ValueExists
func (s Store) ValueExists(value []byte) (key []byte, ok bool)
ValueExists will check for the existence of a Value anywhere within the keyspace; returning the first Key found, true if found || nil and false if not found.