Releases: dragonflyoss/dragonfly
v2.4.3
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
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
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! ❤️


