Repository navigation
Releases
Releases · folbricht/desync
v1.1.5
What's Changed
- Leave zeros out of blank targets when reflinks are available by @folbricht in #439
- Clone zeros in pieces as large as the largest chunk by @folbricht in #440
- Add adaptive concurrency with -n -1 by @folbricht in #433
- Always send the configured client certificate to HTTP stores by @shibuya-r in #444
New Contributors
- @shibuya-r made their first contribution in #444
Full Changelog: v1.1.4...v1.1.5
v1.1.4
What's Changed
- Let 'config -w' create the config file it is pointed at by @folbricht in #417
- Reject a --concurrency below 1 by @folbricht in #419
- Test the idle transfer guard on a simulated clock by @folbricht in #420
- Exit non-zero when a server fails to start by @folbricht in #418
- Don't fail 'cat' when --length runs past the end of the blob by @folbricht in #421
- Take the default when the prune prompt gets an empty line by @folbricht in #422
- Let the config file set the concurrency for a store by @folbricht in #423
- Pass the tar error over a channel in 'mtree' by @folbricht in #425
- Report close failures when writing a tar archive by @folbricht in #424
- Accept an index from anywhere in 'mtree' by @folbricht in #426
- Report output write errors, and don't print a size that isn't known by @folbricht in #427
- Keep 'chop --ignore' reading the file in order by @folbricht in #428
- Bump google.golang.org/grpc from 1.83.1 to 1.83.2 by @dependabot[bot] in #429
- Bump go.opentelemetry.io/otel/sdk from 1.44.0 to 1.45.0 by @dependabot[bot] in #431
- Open SFTP and SSH store connections on demand by @folbricht in #432
- Record the digest in use in index feature flags by @folbricht in #435
- Set the digest flag in catar entries from Digest by @folbricht in #436
- Rework the README pitch around use cases and a multi-version measurement by @folbricht in #437
Full Changelog: v1.1.3...v1.1.4
v1.1.3
What's Changed
- Report an unsupported platform instead of panicking by @folbricht in #410
- Point the installation instructions at the release binaries by @folbricht in #412
- Determine the size of a block device off Linux by @folbricht in #413
- Require a writable store to build a SwapWriteStore by @folbricht in #411
- Fix TestDocumentationLinks with vendored dependencies by @matshch in #414
- Skip Setgid test when we cannot set this bit by @matshch in #415
- Skip FUSE test if it is not available by @matshch in #416
Full Changelog: v1.1.2...v1.1.3
v1.1.2
What's Changed
- Support storing indexes in OCI registries by @folbricht in #396
- Gate CI on golangci-lint and govulncheck by @folbricht in #397
- Lead the README with what desync is for by @folbricht in #398
- Generate the CLI reference and ship the man pages by @folbricht in #399
- Split the README into a docs directory by @folbricht in #400
- Drop the "Where things moved" section from the README by @folbricht in #401
- Bump google.golang.org/grpc from 1.82.1 to 1.83.1 by @dependabot[bot] in #402
- Stop TestFailoverMutliple failing on a loaded machine by @folbricht in #404
- Support NetBSD, OpenBSD and DragonFly by @folbricht in #403
- Verify a device node carries the number it was created with by @folbricht in #405
- Add --no-same-xattrs to untar, and stop dropping xattrs quietly by @folbricht in #406
- Build release binaries static and trimmed, ship Windows as zip by @folbricht in #407
- Don't panic when a waiter gets a nil chunk from a failed request by @folbricht in #409
Full Changelog: v1.1.1...v1.1.2
v1.1.1
What's Changed
- Drop the cgo zstd implementation by @folbricht in #386
- Support FreeBSD by @folbricht in #387
- Use the platform's own device number encoding by @folbricht in #388
- Upgrade minio-go from v6 to v7 by @folbricht in #389
- Apply the timeout store option to S3 stores by @folbricht in #390
- Add a version command by @folbricht in #391
- Release binaries for 32-bit ARM and riscv64 by @folbricht in #392
- Produce byte-identical indexes to casync by @folbricht in #393
- Correct performance and option claims in the README by @folbricht in #394
- Stop calling desync a drop-in replacement for casync by @folbricht in #395
Full Changelog: v1.1.0...v1.1.1
v1.1.0
What's Changed
- Compare mtime with Equal() rather than == by @folbricht in #381
- Drop the dead reader assignment in untar by @folbricht in #382
- Simplify a negated comparison and an mtree escape write by @folbricht in #383
- Trim repo-derivable content from CLAUDE.md by @folbricht in #384
- Support OCI registries for chunk storage by @folbricht in #284
- Bump oras.land/oras-go/v2 from 2.6.1 to 2.6.2 by @dependabot[bot] in #385
Full Changelog: v1.0.4...v1.1.0
v1.0.4
What's Changed
- Bump golang.org/x/net from 0.49.0 to 0.55.0 by @dependabot[bot] in #360
- Pre-allocate the output file on Darwin to avoid APFS sparse-file corruption by @folbricht in #361
- Fix panics when extracting or reading an index of a zero-length file by @folbricht in #362
- Fix LocalStore.GetChunk dropping read errors by @folbricht in #363
- Report the real status code when HTTP retries are exhausted by @folbricht in #364
- Don't retry S3 requests for missing chunks by @folbricht in #365
- Minor cleanups from a staticcheck pass by @folbricht in #366
- Fix data race on pChunker.next in the parallel chunker by @folbricht in #370
- Skip destination read-back for null segments during assembly by @folbricht in #368
- Reuse read-back buffers during file assembly by @folbricht in #369
- Fix data race on chunks shared by DedupQueue by @folbricht in #372
- Speed up the chunker hot loop and fix a false-boundary edge case by @folbricht in #367
- Fix data race on chunks shared by WriteDedupQueue by @folbricht in #373
- Bump golang.org/x/crypto from 0.51.0 to 0.52.0 by @dependabot[bot] in #374
- Add optional chunk encryption to stores by @folbricht in #371
- Fix SFTP prune deadlock when the connection pool has one client by @folbricht in #375
- Retry S3 chunk validation failures and preserve the underlying error by @folbricht in #335
- Bump google.golang.org/grpc from 1.79.3 to 1.82.1 by @dependabot[bot] in #377
- Apply directory metadata only after the directory was populated by @folbricht in #378
- Use value receivers for
ChunkIDStringandMarshalJSONby @matshch in #379 - Add tests locking down
ChunkIDhex formatting by @folbricht in #380
Full Changelog: v1.0.3...v1.0.4
v1.0.3
What's Changed
- Use testing/synctest in dedup queue tests by @folbricht in #357
- Fix GCS not-found detection to unwrap ErrObjectNotExist (#358) by @folbricht in #359
Full Changelog: v1.0.2...v1.0.3
v1.0.2
What's Changed
- Reject --client-ca when --mutual-tls is not set by @folbricht in #333
- Confine catar extraction to the target root (symlink-safe) by @folbricht in #336
- Reject unsafe index names in the index server (path traversal) by @folbricht in #337
- Fix inverted HEAD response and fd leak in index server by @folbricht in #338
- Fix sparse-file cache serving zeros after a transient chunk load failure by @folbricht in #339
- Replace deprecated stdlib/x APIs by @folbricht in #340
- Fix data race on ChunkingStats in IndexFromFile by @folbricht in #341
- Add Code Style section to CLAUDE.md by @folbricht in #342
- Fix inverted --trust-insecure flag silently disabling TLS verification by @folbricht in #343
- Escape space in mtree filename output to prevent keyword injection by @folbricht in #344
- Require --client-ca when --mutual-tls is set by @folbricht in #345
- CI: track go.mod version, test full module, add race detector and static analysis by @folbricht in #346
- CI: least-privilege token, dedupe runs, release timeout, Node 24 actions by @folbricht in #348
- Fix never-run Windows assertions in TestLocationEquality; un-skip on Windows by @folbricht in #349
- Validate chunk size in IndexPos read path to prevent panic/hang by @folbricht in #350
- Prevent SSH option/shell injection via store URLs by @folbricht in #351
- Improve CLI help text and examples by @folbricht in #352
- Migrate remaining tests to testify by @folbricht in #354
- Use t.TempDir() for temp files in tests by @folbricht in #355
- Fix reflink cloning on filesystems with large block sizes such as ZFS by @folbricht in #356
Full Changelog: v1.0.1...v1.0.2
v1.0.1
What's Changed
- Fix the failure of release by @suzuki-shunsuke in #293
- Avoid rewriting self-seed chunks already on disk by @vigneshraman in #300
- Add Claude.md by @folbricht in #302
- Clarify behavior of --print-stats by @folbricht in #303
- Fix typos and grammar in docs by @folbricht in #304
- Replace ioutil.TempDir() in tests with testing.Tempdir() by @folbricht in #305
- Remove all uses of the deprecated ioutil package by @folbricht in #306
- Write index file even if --print-stats is used with 'make' by @folbricht in #308
- Optimize chunker hot loop for ~1.5-2x throughput by @folbricht in #307
- Use buffered channels for SIGHUP signals by @folbricht in #309
- Fix bugs, resource leaks, and test issues in cmd/desync by @folbricht in #310
- Apply go modernize across codebase by @folbricht in #311
- Fix ChunkStream buffer-reuse race causing corrupted stores by @folbricht in #314
- Fix possible deadlock in FileSeed by @folbricht in #315
- Update CI workflows and GoReleaser for Go 1.24 by @folbricht in #318
- Bump go.opentelemetry.io/otel/sdk from 1.39.0 to 1.40.0 by @dependabot[bot] in #320
- Apply error-retry-base-interval backoff to S3 store retries by @folbricht in #322
- Modernize README with improved structure and navigation by @folbricht in #317
- Bump github.com/go-jose/go-jose/v4 from 4.1.3 to 4.1.4 by @dependabot[bot] in #324
- Bump go.opentelemetry.io/otel/sdk from 1.40.0 to 1.43.0 by @dependabot[bot] in #325
- Enforce Authorization header on index-server by @folbricht in #327
- Use constant-time compare for chunk-server auth header by @folbricht in #328
- Add HTTP server timeouts to index-server and chunk-server by @folbricht in #329
- Reject --mutual-tls and --client-ca when TLS is not enabled by @folbricht in #330
- Avoid leaking backend error details in HTTP responses by @folbricht in #331
- Fix help text issues across cmd/desync subcommands by @folbricht in #332
New Contributors
- @suzuki-shunsuke made their first contribution in #293
- @vigneshraman made their first contribution in #300
Full Changelog: v1.0.0...v1.0.1