Skip to content

Releases: dragonflyoss/dragonfly

v2.4.3

11 Mar 15:49
e1491bf

Choose a tag to compare

Changelog

Dependency updates

  • e1491bf chore(deps): Bump d7y.io/api to v2.2.24 (#4653)
  • 5e7833d chore(deps): bump actions/setup-go from 6.2.0 to 6.3.0 (#4644)
  • f0e6ca4 chore(deps): bump actions/stale from 9.1.0 to 10.2.0 (#4650)
  • 2b55113 chore(deps): bump docker/login-action from 3.7.0 to 4.0.0 (#4645)
  • e54da15 chore(deps): bump docker/setup-buildx-action from 3.12.0 to 4.0.0 (#4648)
  • 64a8c97 chore(deps): bump docker/setup-qemu-action from 3.7.0 to 4.0.0 (#4652)
  • 585528c chore(deps): bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.63.0 to 0.67.0 (#4646)
  • 4945e62 chore(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace from 1.40.0 to 1.42.0 (#4651)
  • 5b38216 chore(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp from 1.40.0 to 1.42.0 (#4643)
  • 8ec8522 chore(deps): bump golang.org/x/oauth2 from 0.35.0 to 0.36.0 (#4647)
  • 68ef3a2 chore(deps): bump golang.org/x/sys from 0.41.0 to 0.42.0 (#4649)

Contributors

Thanks to all the contributors! ❤️

v2.4.2

09 Mar 08:59
f94f9f8

Choose a tag to compare

Changelog

Features

  • 7665bb5 feat(api): upgrade d7y.io/api to v2.2.14 and add scheduler cluster de… (#4589)
  • c0cbc16 feat(config): add request rate limit for gRPC server (#4579)
  • ca32e43 feat(manager): add seed client configuration support (#4577)
  • 6e7097b feat(rpcserver): add scheduler configuration marshalling (#4635)

Bug Fixes

  • 30ff770 fix: improve OpenSSF Scorecard score (#4576)
  • 333cf30 refactor(config): rename rateLimit to bandwidthLimit (#4578)
  • afef75b refactor(seedPeer): remove Enable flag and simplify checks (#4636)
  • 2362f85 refactor(types): change priorities from string to int32 (#4612)

Dependency updates

  • b319e58 chore(deps): bump actions/cache from 5.0.2 to 5.0.3 (#4594)
  • 6881ac7 chore(deps): bump actions/checkout from 6.0.1 to 6.0.2 (#4584)
  • 34fe42f chore(deps): bump actions/upload-artifact from 6.0.0 to 7.0.0 (#4633)
  • daf5e65 chore(deps): bump anchore/sbom-action from 0.21.1 to 0.22.0 (#4581)
  • 2694596 chore(deps): bump anchore/sbom-action from 0.22.0 to 0.22.1 (#4599)
  • 30021fc chore(deps): bump anchore/sbom-action from 0.22.1 to 0.22.2 (#4606)
  • 75da3c0 chore(deps): bump d7y.io/api/v2 from 2.2.14 to 2.2.19 (#4614)
  • b28e3c7 chore(deps): bump docker/build-push-action from 6.18.0 to 6.19.2 (#4617)
  • 1e2c1d5 chore(deps): bump docker/login-action from 3.6.0 to 3.7.0 (#4596)
  • b325fce chore(deps): bump filippo.io/edwards25519 from 1.1.0 to 1.1.1 (#4623)
  • fa43c29 chore(deps): bump github.com/onsi/gomega from 1.39.0 to 1.39.1 (#4610)
  • ccfd095 chore(deps): bump github.com/redis/go-redis/v9 from 9.17.2 to 9.17.3 (#4585)
  • 4b9235b chore(deps): bump github.com/redis/go-redis/v9 from 9.17.3 to 9.18.0 (#4619)
  • 058e397 chore(deps): bump github/codeql-action from 4.31.10 to 4.31.11 (#4586)
  • 256194d chore(deps): bump github/codeql-action from 4.31.11 to 4.32.1 (#4598)
  • b6070ac chore(deps): bump github/codeql-action from 4.32.1 to 4.32.2 (#4609)
  • 9e37bec chore(deps): bump github/codeql-action from 4.32.2 to 4.32.5 (#4630)
  • eb93560 chore(deps): bump go.opentelemetry.io/otel from 1.39.0 to 1.40.0 (#4597)
  • ce173de chore(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.37.0 to 1.40.0 (#4592)
  • 798057f chore(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp from 1.37.0 to 1.40.0 (#4595)
  • bb19f4e chore(deps): bump go.opentelemetry.io/otel/sdk from 1.39.0 to 1.40.0 (#4593)
  • 158f1de chore(deps): bump golang.org/x/crypto from 0.47.0 to 0.48.0 (#4615)
  • 333ba22 chore(deps): bump golang.org/x/oauth2 from 0.34.0 to 0.35.0 (#4618)
  • 7e8a8dc chore(deps): bump golang.org/x/sys from 0.40.0 to 0.41.0 (#4608)
  • 9e4515e chore(deps): bump google.golang.org/api from 0.260.0 to 0.262.0 (#4580)
  • 60e280e chore(deps): bump google.golang.org/api from 0.262.0 to 0.269.0 (#4629)
  • b5a63e3 chore(deps): bump goreleaser/goreleaser-action from 6.4.0 to 7.0.0 (#4624)
  • fc0a8f4 chore(deps): bump helm/kind-action from 1.13.0 to 1.14.0 (#4626)
  • 84d159d chore(deps): bump kentaro-m/auto-assign-action from 18e62580c51802a607cac53db7cb07ddacb24731 to c8db276c3a2c3609c66ffe9f371cf1ebe80bc1b1 (#4582)

Chores

  • f94f9f8 build(ci): add Node.js setup to release workflow (#4640)
  • 07054a5 chore(client): update client subproject commit reference (#4638)

Contributors

Thanks to all the contributors! ❤️

v2.4.1

23 Jan 03:32
e2cae46

Choose a tag to compare

Changelog

Bug Fixes

  • e2cae46 fix(security): Dragonfly manager job API unauthenticated access (#4575)

Contributors

Thanks to all the contributors! ❤️

v2.4.1-rc.1

23 Jan 02:41

Choose a tag to compare

Changelog

Features

  • a0240e2 feat(router): remove deprecated preheat API endpoints

Bug Fixes

  • 9fb9a2d fix(security): Dragonfly manager job API unauthenticated access

Chores

Contributors

Thanks to all the contributors! ❤️

v2.4.1-rc.0

22 Jan 14:05
05a2137

Choose a tag to compare

Changelog

Features

  • 05a2137 feat(router): remove deprecated preheat API endpoints (#4574)

Chores

Contributors

Thanks to all the contributors! ❤️

v2.4.1-beta.1

21 Jan 02:59
49343a4

Choose a tag to compare

Changelog

Bug Fixes

  • 49343a4 fix(manager,scheduler): IPv6-safe host:port formatting (#4555)

Contributors

Thanks to all the contributors! ❤️

v2.4.1-beta.0

20 Jan 14:43
a9301ea

Choose a tag to compare

Changelog

Features

  • a9301ea feat(scheduler): add Name field to Host struct (#4570)

Dependency updates

  • 4dadc8d chore(deps): bump actions/cache from 5.0.1 to 5.0.2 (#4569)
  • 0c9bc03 chore(deps): bump actions/setup-go from 5.5.0 to 6.2.0 (#4565)
  • e5872f4 chore(deps): bump anchore/sbom-action from 0.21.0 to 0.21.1 (#4560)
  • 95ac2a9 chore(deps): bump github.com/onsi/ginkgo/v2 from 2.27.2 to 2.27.4 (#4561)
  • 4edc8e6 chore(deps): bump github.com/onsi/ginkgo/v2 from 2.27.4 to 2.27.5 (#4564)
  • 7dc356a chore(deps): bump github.com/onsi/gomega from 1.38.3 to 1.39.0 (#4559)
  • 9ec3fcf chore(deps): bump github/codeql-action from 4.31.9 to 4.31.10 (#4562)
  • fcafee6 chore(deps): bump golang.org/x/crypto from 0.44.0 to 0.47.0 (#4558)
  • 6579448 chore(deps): bump google.golang.org/api from 0.248.0 to 0.260.0 (#4566)

Contributors

Thanks to all the contributors! ❤️

v2.4.0

12 Jan 07:35
3253319

Choose a tag to compare

Dragonfly v2.4.0 is released

Dragonfly v2.4.0 is released!🎉🎉🎉 Thanks the contributors who made this release happend and welcome you to visit d7y.io website.

dragonfly

New features and enhancements

load-aware scheduling algorithm

A two-stage scheduling algorithm combining central scheduling with node-level secondary scheduling to
optimize P2P download performance based on real-time load awareness.

p1

For more information, please refer to the Scheduling.

Vortex Protocol Support for P2P File Transfer

Dragonfly provide the new Vortex transfer protocol based on TLV to improve the download performance in internal network.
Use the TLV (Tag-Length-Value) format as a lightweight protocol to replace gRPC for data transfer between peers.
TCP-based Vortex reduces large file download time by 50% and QUIC-based Vortex by 40% compared to gRPC, both effectively reducing peak memory usage.

For more information, please refer to the TCP Protocol Support for P2P File Transfer and QUIC Protocol Support for P2P File Transfer.

Request SDK

A SDK for routing User requests to Seed Peers using consistent hashing, replacing the previous Kubernetes Service load balancing approach.

p2

For more details, please refer to Request SDK.

Simple Multi‑Cluster Kubernetes Deployment with Scheduler Cluster ID

Dragonfly supports a simplified feature for deploying and managing multiple Kubernetes clusters by explicitly assigning a schedulerClusterID to each cluster.
This approach allows users to directly control cluster affinity without relying on location‑based scheduling metadata such as IDC, hostname, or IP.

Using this feature, each Peer, Seed Peer, and Scheduler determines its target scheduler cluster through a clearly defined scheduler cluster ID.
This ensures precise separation between clusters and predictable cross‑cluster behavior.

p3

For more information, please refer to the Create Dragonfly Cluster Simple.

Performance and Resource Optimization for Manager and Scheduler Components

Enhanced service performance and resource utilization across Manager and Scheduler components while significantly reducing
CPU and memory overhead, delivering improved system efficiency and better resource management.

Enhanced Preheating

  • Support for IP-based peer selection in preheating jobs with priority-based selection logic where IP specification
    takes highest priority, followed by count-based and percentage-based selection

  • Support for preheating multiple URLs in a single request.

  • Support for preheating file and image via Scheduler gRPC interface.

p4

Calculate task ID based on image blob SHA256 to avoid redundant downloads

The Client now supports calculating task IDs directly from the SHA256 hash of image blobs instead of using the download URL.
This enhancement prevents redundant downloads and data duplication when the same blob is accessed from
different registry domains.

Cache HTTP 307 redirects for split downloads

Support for caching HTTP 307 (Temporary Redirect) responses to optimize Dragonfly's multi-piece download performance.
When a download URL is split into multiple pieces, the redirect target is now cached,
eliminating redundant redirect requests and reducing latency.

Go Client Deprecated and Replaced by Rust Client

The Go client has been deprecated and replaced by the Rust Client. All future development and maintenance will focus
exclusively on the Rust client, which offers improved performance, stability, and reliability.

For more information, please refer to the dragoflyoss/client.

Additional Enhancements

  • Enable 64K page size support for ARM64 in the Dragonfly Rust client.
  • Fix missing git commit metadata in dfget version output.
  • Support for config_path of io.containerd.cri.v1.images plugin for containerd V3 configuration.
  • Replaces glibc DNS resolver with hickory-dns in reqwest to implement DNS caching and prevent excessive DNS lookups during piece downloads.
  • Support for the --include-files flag to selectively download files from a directory.
  • Add the --no-progress flag to disable the download progress bar output.
  • Support for custom request headers in backend operations, enabling flexible header configuration for HTTP requests.
  • Refactored log output to reduce redundant logging and improve overall logging efficiency.

Significant bug fixes

  • Modified the database field type from text to longtext to support storing the information of preheating job.
  • Fixed panic on repeated seed peer service stops during Scheduler shutdown.
  • Fixed broker authentication failure when specifying the Redis password without setting a username.

Nydus

New features and enhancements

  • Nydusd: Add CRC32 validation support for both RAFS V5 and V6 formats, enhancing data integrity verification.
  • Nydusd: Support resending FUSE requests during nydusd restoration, improving daemon recovery reliability.
  • Nydusd: Enhance VFS state saving mechanism for daemon hot upgrade and failover.
  • Nydusify: Introduce Nydus-to-OCI reverse conversion capability, enabling seamless migration back to OCI format.
  • Nydusify: Implement zero-disk transfer for image copy, significantly reducing local disk usage during copy operations.
  • Snapshotter: Builtin blob.meta in bootstrap for blob fetch reliability for RAFS v6 image.

Significant bug fixes

  • Nydusd: Fix auth token fetching for access_token field in registry authentication.
  • Nydusd: Add recursive inode/dentry invalidation for umount API.
  • Nydus Image: Fix multiple issues in optimize subcommand and add backend configuration support.
  • Snapshotter: Implement lazy parent recovery for proxy mode to handle missing parent snapshots.

Others

You can see CHANGELOG for more details.

v2.3.5-rc.3

06 Jan 06:00
6533aef

Choose a tag to compare

Changelog

Features

  • 7172afd feat(scheduler): Add task completion status tracking for preheatImage/preheatFile (#4528)

Bug Fixes

  • bed6b6c refactor(job): simplify IsFinished logic (#4540)
  • 40b001a refactor: improve error handling and optimize peer store operations (#4539)

Dependency updates

  • d122374 chore(deps): bump github.com/onsi/gomega from 1.38.2 to 1.38.3 (#4531)
  • f85ee8d chore(deps): bump google.golang.org/grpc from 1.75.0 to 1.78.0 (#4547)
  • ba311ee chore(deps): bump kentaro-m/auto-assign-action from 6cd97c823cf4de88c6ca0059841f4f8b3bae70cd to 72309cdba98adf773e9326cd1964e7d6bb7e1513 (#4536)
  • ca4aeb5 chore(deps): bump kentaro-m/auto-assign-action from 72309cdba98adf773e9326cd1964e7d6bb7e1513 to 18e62580c51802a607cac53db7cb07ddacb24731 (#4548)
  • 45df05d chore(deps): improve OpenSSF results (#4530)

Chores

  • 6533aef build(release): add upload-tag-name input for assets upload (#4551)
  • e3df150 chore: update Go version to 1.25.5 (#4542)
  • e032010 ci(release): enable asset upload in SLSA workflow (#4549)

Contributors

Thanks to all the contributors! ❤️

v2.3.5-rc.2

06 Jan 02:40
a8c2100

Choose a tag to compare

Changelog

Bug Fixes

  • a8c2100 fix(peer): update event transition for failed state (#4529)

Contributors

Thanks to all the contributors! ❤️