MCPcopy Index your code
hub / github.com/acgist/snail

github.com/acgist/snail @2.17.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 2.17.0 ↗ · + Follow
3,440 symbols 13,004 edges 454 files 2,299 documented · 67%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Snail(蜗牛)

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

<img alt="Java" src="https://img.shields.io/badge/dynamic/xml?style=flat-square&label=Java&color=blueviolet&url=https://raw.githubusercontent.com/acgist/snail/master/pom.xml&query=//*[local-name()='java.version']&cacheSeconds=3600" />
<img alt="JavaFX" src="https://img.shields.io/badge/dynamic/xml?style=flat-square&label=JavaFX&color=blueviolet&url=https://raw.githubusercontent.com/acgist/snail/master/pom.xml&query=//*[local-name()='javafx.version']&cacheSeconds=3600" />
<a target="_blank" href="https://starchart.cc/acgist/snail">
    <img alt="GitHub stars" src="https://img.shields.io/github/stars/acgist/snail?style=flat-square&label=Github%20stars&color=crimson" />
</a>
<img alt="Gitee stars" src="https://img.shields.io/badge/dynamic/json?style=flat-square&label=Gitee%20stars&color=crimson&url=https://gitee.com/api/v5/repos/acgist/snail&query=$.stargazers_count&cacheSeconds=3600" />



<img alt="GitHub Workflow Status" src="https://img.shields.io/github/actions/workflow/status/acgist/snail/build.yml?style=flat-square&branch=master" />
<img alt="GitHub release (latest by date)" src="https://img.shields.io/github/v/release/acgist/snail?style=flat-square&color=orange" />
<img alt="Maven Central" src="https://img.shields.io/maven-central/v/com.acgist/snail?style=flat-square&color=orange" />
<img alt="GitHub code size in bytes" src="https://img.shields.io/github/languages/code-size/acgist/snail?style=flat-square&color=blue" />
<img alt="GitHub" src="https://img.shields.io/github/license/acgist/snail?style=flat-square&color=blue" />

结构

项目 描述
snail 下载核心
snail-javafx 电脑界面

架构

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         |                  NativeGUI/ExtendGUI                  |         |
|         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+         |
|         |           Multifile         |       Monofile          |         |
|         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+         |
|         |                       Downloader                      |         |
|         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+         |
|         |                             |       |       |         |         |
|         +  BitTorrent   +-+-+-+-+-+-+-+       |       |         |         |
| Context |               |   Magnet    |  FTP  |  HLS  |  HTTP   | Thread  |
|         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       |       |         |         |
|         |   STUN/UPNP   | DHT/Tracker |       |       |         |         |
|         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+         |
|         |                        Protocol                       |         |
|         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+         |
|         |                       IP/TCP/UDP                      |         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

使用

稳定版本下载

编译

mvn clean package -P release -D skipTests

推荐使用Release版本编译

界面

java -server -Xms128m -Xmx256m -jar snail.javafx-{version}.jar

界面使用参考界面使用帮助

代码

<dependency>
    <groupId>com.acgist</groupId>
    <artifactId>snail</artifactId>
    <version>{release.version}</version>
</dependency>
final Snail snail = SnailBuilder.newBuilder()
    .enableAllProtocol()
    .buildSync();
snail.download("https://www.acgist.com");
snail.lockDownload();

代码二次开发参考开发帮助

帮助

开发帮助 界面帮助 使用帮助 安卓帮助

其他

仓库

协议

下载协议

依赖

项目 许可
JavaFX GPLv2 + CE
OpenJDK GPLv2 + CE

界面

蜗牛

白嫖

阿里云服务器

Extension points exported contracts — how you extend this code

KeyReleasedFunction (Interface)
按键任务 @author acgist [8 implementers]
snail-javafx/src/main/java/com/acgist/snail/gui/javafx/window/Window.java
Coster (Interface)
执行任务接口 @author acgist [8 implementers]
snail/src/main/java/com/acgist/snail/utils/Performance.java
ITheme (Interface)
系统主题接口 @author acgist [2 implementers]
snail-javafx/src/main/java/com/acgist/snail/gui/javafx/theme/ITheme.java
IContext (Interface)
生命周期对象上下文接口 主要负责管理对象生命周期:增删改查 @author acgist [19 implementers]
snail/src/main/java/com/acgist/snail/context/IContext.java
IChannelHandler (Interface)
通道代理 @param 通道代理类型 @author acgist [8 implementers]
snail/src/main/java/com/acgist/snail/net/IChannelHandler.java
IPeerConnect (Interface)
Peer连接接口 @author acgist [8 implementers]
snail/src/main/java/com/acgist/snail/net/torrent/IPeerConnect.java
IExtensionMessageHandler (Interface)
扩展协议接口 @author acgist [13 implementers]
snail/src/main/java/com/acgist/snail/net/torrent/peer/IExtensionMessageHandler.java

Core symbols most depended-on inside this repo

debug
called by 476
snail/src/main/java/com/acgist/snail/logger/Logger.java
log
called by 312
snail/src/main/java/com/acgist/snail/utils/Performance.java
get
called by 155
snail/src/main/java/com/acgist/snail/format/JSON.java
of
called by 143
snail/src/main/java/com/acgist/snail/logger/Level.java
getLogger
called by 131
snail/src/main/java/com/acgist/snail/logger/LoggerFactory.java
warn
called by 114
snail/src/main/java/com/acgist/snail/logger/Logger.java
put
called by 96
snail/src/main/java/com/acgist/snail/format/BEncodeEncoder.java
costed
called by 89
snail/src/main/java/com/acgist/snail/utils/Performance.java

Shape

Method 2,939
Class 428
Enum 46
Interface 27

Languages

Java100%

Modules by API surface

snail/src/main/java/com/acgist/snail/net/torrent/TorrentSession.java65 symbols
snail/src/main/java/com/acgist/snail/context/session/TaskSession.java63 symbols
snail/src/main/java/com/acgist/snail/net/torrent/peer/PeerSession.java58 symbols
snail/src/main/java/com/acgist/snail/net/torrent/peer/PeerSubMessageHandler.java45 symbols
snail-javafx/src/main/java/com/acgist/snail/gui/javafx/window/statistics/StatisticsController.java40 symbols
snail/src/main/java/com/acgist/snail/config/PeerConfig.java38 symbols
snail/src/main/java/com/acgist/snail/net/http/HttpClient.java35 symbols
snail/src/main/java/com/acgist/snail/protocol/Protocol.java34 symbols
snail/src/main/java/com/acgist/snail/config/SystemConfig.java34 symbols
snail/src/main/java/com/acgist/snail/net/torrent/TorrentStream.java32 symbols
snail/src/main/java/com/acgist/snail/utils/StringUtils.java30 symbols
snail/src/main/java/com/acgist/snail/net/torrent/peer/PeerConnect.java28 symbols

For agents

$ claude mcp add snail \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact