# snail **Repository Path**: acgist/snail ## Basic Information - **Project Name**: snail - **Description**: 基于Java、JavaFX开发的下载工具,支持下载协议:BT(BitTorrent、磁力链接、种子文件)、HLS(M3U8)、FTP、HTTP。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://www.acgist.com/snail - **GVP Project**: No ## Statistics - **Stars**: 619 - **Forks**: 205 - **Created**: 2019-02-19 - **Last Updated**: 2025-06-10 ## Categories & Tags **Categories**: networklib **Tags**: DHT, Tracker, BitTorrent, Magnet, Javafx ## README

Snail(蜗牛)

基于Java、JavaFX开发的下载工具,支持下载协议:BT(BitTorrent、磁力链接、种子文件)、HLS(M3U8)、FTP、HTTP。

Java JavaFX GitHub stars Gitee stars
GitHub Workflow Status GitHub release (latest by date) Maven Central GitHub code size in bytes GitHub

---- ## 结构 |项目|描述| |:--|:--| |snail|下载核心| |snail-javafx|电脑界面| ## 架构 ``` +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | NativeGUI/ExtendGUI | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Multifile | Monofile | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Downloader | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | | | | | | + BitTorrent +-+-+-+-+-+-+-+ | | | | | Context | | Magnet | FTP | HLS | HTTP | Thread | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | | | STUN/UPNP | DHT/Tracker | | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Protocol | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | IP/TCP/UDP | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ``` ## 使用 [稳定版本下载](https://gitee.com/acgist/snail/attach_files) ### 编译 ```bash mvn clean package dependency:copy-dependencies -P release -D skipTests ``` > 推荐使用[Release](https://gitee.com/acgist/snail/releases)版本编译 ### 界面 ```bash java -server -Xms128m -Xmx256m -jar snail.javafx-{version}.jar ``` > 界面使用参考[界面使用帮助](./docs/GUI.md) ### 代码 ```xml com.acgist snail {release.version} ``` ```java final Snail snail = SnailBuilder.newBuilder() .enableAllProtocol() .buildSync(); snail.download("https://www.acgist.com"); snail.lockDownload(); ``` > 代码二次开发参考[开发帮助](./docs/API.md) ### 帮助 [开发帮助](./docs/API.md) [界面帮助](./docs/GUI.md) [使用帮助](./docs/HELP.md) [安卓帮助](./docs/Android.md) ## 其他 ### 仓库 * GITEE:[https://gitee.com/acgist/snail](https://gitee.com/acgist/snail) * GITHUB:[https://github.com/acgist/snail](https://github.com/acgist/snail) ### 协议 [下载协议](./docs/PROTOCOL.md) ### 依赖 |项目|许可| |:--|:--| |[JavaFX](https://wiki.openjdk.java.net/display/OpenJFX)|[GPLv2 + CE](https://openjdk.java.net/legal/gplv2+ce.html)| |[OpenJDK](https://openjdk.java.net)|[GPLv2 + CE](https://openjdk.java.net/legal/gplv2+ce.html)| ### 界面 ![蜗牛](./docs/gui/main.png "蜗牛") ### 白嫖 [阿里云服务器](https://www.acgist.com/collect/server)