Skip to content

Releases: ipld/go-car

v2.4.0

06 Jul 09:57
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.3.0...v2.4.0

v0.4.0

06 Jul 09:56
Compare
Choose a tag to compare

Full Changelog: v0.3.3...v0.4.0

v2.3.0

30 Jun 09:34
Compare
Choose a tag to compare
  • Add API to regenerate index from CARv1 or CARv2 #309

Full Changelog: v2.2.0...v2.3.0

v2.2.0

28 Jun 09:22
c65f0bf
Compare
Choose a tag to compare
  • Fix install in README #292
  • fix(test): rootless fixture should have no roots, not null roots #293
  • bump to newer blockstore err not found #301

Full Changelog: v2.1.1...v2.2.0

v2.1.1

15 Dec 10:27
be2525f
Compare
Choose a tag to compare
  • 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
  • Add the ability to supply context in blockstore APIs #275
    • Contains breaking changes in blockstore.ReadOnly and blockstore.ReadWrite APIs.

Full Changelog: v2.1.0...v2.1.1

v0.3.3

15 Dec 09:40
be2525f
Compare
Choose a tag to compare
  • Add the ability to supply context.Context to Store and ReadStore interfaces #273
    • This is a breaking change to the API

Full Changelog: v0.3.2...v0.3.3

v0.3.2

13 Oct 02:22
Compare
Choose a tag to compare
  • Add optional Options varargs to car.NewSelectiveCar():
    • car.MaxTraversalLinks(uint64) to provide an upper limit on the number of links to traverse during a selector walk
    • car.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

06 Oct 09:46
c93f536
Compare
Choose a tag to compare
  • 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 with StoreIdentityCIDs, which specify if an index contains identity CIDs

  • Prevent indexing huge CIDs, configurable via MaxIndexCidSize

  • Reader.IndexReader now returns nil when a CARv2 file lacks an index

  • The API types ReadOption, WriteOption, and ReadWriteOption are deprecated in favor of Option to improve usability

Full Changelog: v2.0.2...v2.1.0

v2.0.2

10 Aug 11:54
Compare
Choose a tag to compare

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

06 Aug 15:19
Compare
Choose a tag to compare

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.