Tags: lucmq/go-shelve
Tags
Version 1.2 (#35) * sdb: support sorted iteration and efficient seeking (#33) - Implement shard‑aware traversal so Items() yields keys in deterministic lexical order (ascending by default) or reverse order when sdb.Desc is passed. - Items() now accepts a start key, enabling seeks without scanning earlier shards. A binary search on the in‑memory shard table picks the first candidate shard. - Fix `bolt` and `bbolt` drivers `seek()` function. * sdb: add filesystem interface (#34) * Encapsulate os.* calls in `fileSystem` abstraction - Encapsulate os.* calls in `fileSystem` abstraction - Create tests with a mocked FS - Split `Put` tests into `Put` and `Put_Concurrent` - Create `TestConcurrentOperations` - Create `metadataStore` - Add DB.syncInterval field * Fix cache stats race * shelve-cli: support descending iteration
Version 1.1 (#29) * Create `go-shelve` CLI (#27) * cmd: add basic command-line functionality * shelve: change the default codec to json ### Why JSON? - Human-readable and easy to debug - Works seamlessly with the shelve-cmd CLI - Interoperable with other tools and languages - Ideal for simple data (structs, strings, numbers, slices, maps) Gob codec can still be used for full Go fidelity with: ```Go db, _ := shelve.Open("mydb", shelve.WithCodec(shelve.GobCodec)) ``` * shelve: update README.md * shelve: improve string codec and remove Gob fallback - Extended stringCodec to support booleans, floats, and fixed-size byte arrays ([N]byte). - Added support for types implementing encoding.TextMarshaler / TextUnmarshaler. - Removed Gob as a fallback for unsupported key types — unsupported types must now be explicitly configured. * shelve: run go.yml in dev / refactor main.go type alias * shelve: rename `StringCodec` to `TextCodec` (#28)
PreviousNext