Releases: ipld/go-car
v2.4.0
What's Changed
- Fix malformed CAR panics and excessive memory usage #312
See security advisoryGHSA-9x4h-8wgm-8xfg
Full Changelog: v2.3.0...v2.4.0
v0.4.0
- Fix malformed CAR panics and excessive memory usage #312
See security advisoryGHSA-9x4h-8wgm-8xfg
Full Changelog: v0.3.3...v0.4.0
v2.3.0
v2.2.0
v2.1.1
- Iterate in deterministic order in
IterableIndex.ForEach
#258 - Fix bug where
blockstore.ReadOnly
fails if given CARv1 payload and no initial index #267 - Add the ability to traverse CAR content using IPLD selectors #269
- Produce CAR files by selectively traversing a DAG stored in an
ipld.LinkSystem
. - Contains breaking change in
index.Index
API
- Produce CAR files by selectively traversing a DAG stored in an
- Add the ability to supply context in
blockstore
APIs #275- Contains breaking changes in
blockstore.ReadOnly
andblockstore.ReadWrite
APIs.
- Contains breaking changes in
Full Changelog: v2.1.0...v2.1.1
v0.3.3
v0.3.2
- Add optional
Options
varargs tocar.NewSelectiveCar()
:car.MaxTraversalLinks(uint64)
to provide an upper limit on the number of links to traverse during a selector walkcar.TraverseLinksOnlyOnce()
to instruct the selector traversal to not make repeat visits of the same link (this is only safe in the case of an exhaustive selector, partial selectors may require valid repeat visits of the same link)
- Update go-ipld-prime to v0.12.3
Full Changelog: v0.3.1...v0.3.2
v2.1.0
-
Implement the new
multicodec.CarMultihashIndexSorted
index format, which uses full multihashes, and is now the default when generating an index -
Add
ExtractV1File
to extract a CARv1 file out of a CARv2 efficiently -
Add
ReplaceRootsInFile
to update the roots list in a CAR file -
Support the
fully-indexed
CARv2 characteristic along withStoreIdentityCIDs
, which specify if an index contains identity CIDs -
Prevent indexing huge CIDs, configurable via
MaxIndexCidSize
-
Reader.IndexReader
now returnsnil
when a CARv2 file lacks an index -
The API types
ReadOption
,WriteOption
, andReadWriteOption
are deprecated in favor ofOption
to improve usability
Full Changelog: v2.0.2...v2.1.0
v2.0.2
The v2/blockstore.ReadWrite
now offers Discard
to allow closing the blockstore without performing the extra work done as part of Finalize
. Apart from use in testing, this is particularly useful when writing a CARv2 file is cancelled.
Fixes an issue where v2/blockstore.ReadOnly
blockstore would panic if used after it is closed. It now returns a dedicated error to signal that the blockstore is closed and no longer usable.
Fixes an issue where AllKeysChan
retained lock when an error occurs early on during the traversal.
See #206
Full Changelog: v2.0.1...v2.0.2
v2.0.1
We're happy to announce go-car v2.0.1!
This is the first stable release of the v2 module, github.com/ipld/go-car/v2
.
As a v2 module, existing users of go-car v0 are not forced to upgrade,
and it is possible to use both go-car v0 and v2 in the same build.
This new major version adds support for the
CAR version 2 spec.
It is mainly aimed at reading and writing CARv2 files,
but also supports consuming CARv1 files.
On top of support for CARv2, it also includes a blockstore
sub-package that
implements a go-ipfs-blockstore on top of a CARv2 archive with an index.
Downstream users of go-car which simply want to list or obtain blocks and CIDs
from CAR files should be able to replace v0 with v2.0.1. With the upgrade, the
code will also be able to consume CARv2 files.
Downstream users which want to write CARv1 files should likely continue using v0
for that purpose for now. In the future, the v2 module will be
better suited to writing DAGs as
CAR files. As of v2.0.1, only the blockstore
package allows writing CARv2 files.
Please note that the previous v2.0.0 tag is missing a LICENSE file and should be ignored.