All notable changes to this project will be documented in this file, which follows the conventions of keepachangelog.com. This project adheres to Semantic Versioning.
...
blocks.meter namespace and logic from the 2.x series.This release upgrades the library to Clojure 1.9.0.
Finally seems like time for a 1.0 release. One very minor breaking change.
blocks.core/lazy?.:stored-at metadata on blocks is now returned as a
java.time.Instant instead of a java.util.Date.MemoryBlockStore uses a ref internally instead of an atom.test.carly.IDeref as a way to get their internal
content.PersistentBytes has a toByteArray method to return a copy of the byte data
as a raw array.This release has a couple of breaking changes, detailed below.
PersistentBytes values support comparison using lexical sorting rules.blocks.core/->store initializer function to create block stores from URI
configuration strings.blocks.core/scan function to produce a summary of the blocks contained in
the store.blocks.core/sync! function to copy blocks between stores.ErasableStore protocol for block stores which support efficient or atomic
data removal. There's a matching blocks.core/erase!! function using it,
which falls back to deleting the blocks in the store individually.blocks.store.util namespace merged into blocks.store. This mainly impacts
store implementers.EnumerableStore protocol and enumerate method. No usages have
come up requiring it and it's easy to replace in the non-optimized case.BlockStore.file-block-store.IPending, because it is not appropriate to treat
immutable values as asynchronous references.blocks.store/initialize for constructing block stores from a
URI string. The method is dispatched by URI scheme.blocks.data.conversions, which defined conversion
paths for the byte-streams library.blocks.data/clean-block.mvxcvi/multihash to 2.0.0.put! in them.blocks.store.tests now build generative sequences of
operations and apply them to the store under test.nil instead of an empty block.block/put! is actually a block.block/put! instead of requiring stores to do it.false when deleting a block which is not
contained in the store.PersistentBytes equality to include primitive byte arrays and
ByteBuffer objects which have identical content.block/store! will no longer try to store empty files.block/open to read a sub-range of the content in a
block by specifying starting and ending bytes.
#3FileBlockStore to FileStore.blocks.store namespace, with wrappers in
blocks.core.validate! now checks the size of lazy blocks by using a counting input
stream wrapper.blocks.store.cache namespace with logical caching block store
implementation.random-bytes and random-hex now generate fixed-width data.put!, delete!, and erase! to
prevent concurrent modifications.select-stats moved from core to util namespace.:origin block stat to :source.read-block for consistency.put! retains extra attributes and metadata on the block argument in the
returned block.stat and get on non-existent
blocks and put! merging.Lots of high-level library changes! blocks.data.Block is now a custom type to
protect immutable fields like :id and :size and support the IPending
interface.
blocks.store.tests namespace.BlockStore methods enumerate and get* changed to -list and -get,
respectively.list now returns a sequence of block stats, rather than just multihashes.get and put! add stat information as metadata.Initial project release.
Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |