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 is a website building & hosting documentation for Clojure/Script libraries
× close