Dragonfly is an intelligent P2P based image and file distribution system.
Note: Themasterbranch may be in an unstable or even broken state during development. Please use releases instead of themasterbranch in order to get stable binaries.
Dragonfly is an open source intelligent P2P based image and file distribution system. Its goal is to tackle all distribution problems in cloud native scenarios. Currently Dragonfly focuses on being:
Dragonfly is now hosted by the Cloud Native Computing Foundation (CNCF) as an Incubating Level Project. Originally it was born to solve all kinds of distribution at very large scales, such as application distribution, cache distribution, log distribution, image distribution, and so on.
Dragonfly has finished refactoring in Golang. Now versions > 0.4.0 are totally in Golang, while those < 0.4.0 are in Java. We encourage adopters to try Golang version first, since Java versions will be out of support in the next few releases.
In details, Dragonfly has the following features:
For Dragonfly, no matter how many clients start the file downloading, the average downloading time is almost stable without increasement (12s in experiment, which means it only takes 12s in total for all client to finish downloading file/image).
And for wget, the downloading time keeps increasing when you have more clients. As the number of wget clients reaches 1200 (in following experiment), the file source will crash, then it can not serve any client.
The following table shows the testing environment and the graph shows the comparison result.
|Test Environment |Statistics| |--------------------|-------------------| |Dragonfly server|2 * (24core 64GB 2000Mb/s)| |File Source server|2 * (24core 64GB 2000Mb/s)| |Client|4core 8GB 200Mb/s| |Target file size|200MB|
For more details about roadmap, please refer to file ROADMAP.md.
You are encouraged to communicate most things via GitHub issues or pull requests.
Other active channels:
You are warmly welcomed to hack on Dragonfly. We have prepared a detailed guide CONTRIBUTING.md.
Dragonfly is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.