Releases: dragonflyoss/dragonfly
v2.4.1
v2.4.1-rc.1
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
v2.4.1-beta.1
v2.4.1-beta.0
Changelog
Features
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
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.
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.
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.
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.
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.
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_pathofio.containerd.cri.v1.imagesplugin 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 flagto 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
texttolongtextto 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_tokenfield 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
Changelog
Features
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
v2.3.5-rc.1
v2.3.5-rc.0
Changelog
Features
Dependency updates
- 0aec3d3 chore(deps): bump docker/setup-buildx-action from 3.11.1 to 3.12.0 (#4519)
- 9955a96 chore(deps): bump github/codeql-action from 4.31.8 to 4.31.9 (#4518)
- 44f8814 chore(deps): bump kentaro-m/auto-assign-action from 1c84c62f79d19c9fcab882efcf5da979c72b3c97 to 6cd97c823cf4de88c6ca0059841f4f8b3bae70cd (#4520)
Chores
Contributors
Thanks to all the contributors! ❤️


