MCPcopy Index your code
hub / github.com/WJQSERVER/speedtest-ex

github.com/WJQSERVER/speedtest-ex @1.1.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.1.3 ↗ · + Follow
130 symbols 325 edges 22 files 69 documented · 53%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

SpeedTest-EX Logo

SpeedTest-EX

SpeedTest-EX是一个基于Touka框架的高性能网页测速程序, 高性能的同时带有身份验证

zh-cn | en | zh-tw | cantonese|hk

SpeedTest-EX 讨论群组

❗ 注意:基于网页测速的原理,程序会生成无用块供测速者下载来计算真实下行带宽,一定程度上存在被恶意刷流量的风险,在对外分享你的测速页面后,请注意观察服务器流量使用情况,避免流量使用异常。推荐开启身份验证功能

特性

  • 轻量化: 无需额外环境, 仅需下载二进制文件即可运行.(Docker镜像也更加轻量化)
  • 易于部署: 内嵌前端页面, 无需额外配置即可部署.
  • 高效可控: 基于Touka框架, 并发处理能力强, 响应速度快. 也可以针对项目需求, 对框架进行自定义功能增加.

与speedtest-go的区别

  • Web框架: speedtest-go使用Chi框架, 本项目使用自有Touka框架.
  • IPinfo: speedtest-go使用ipinfo.io API获取IP信息, 本项目兼容ipinfo.io API, 也可使用WJQSERVER-STUDIO/ip为自托管服务提供IP信息.
  • 结果图表: 本项目加入了结果图表, 方便用户查看测速结果.
  • 更加清晰的配置文件: 改进配置文件结构
  • 前端页面: 内嵌前端页面, 无需额外配置即可部署.(仍与liberspeed前端保持兼容性)
  • 重写: 对大部分组件进行重写与优化, 使程序更加易于维护的同时提升部分性能.

部署与使用

使用Docker进行部署

参看docker-cli部署SpeedTest-EX

参看docker-compose部署SpeedTest-EX

在 OpenWrt 上部署

参看在 OpenWrt 上运行 Speedtest-EX

配置文件

参看配置文件说明

前端页面

SpeedTest-EX Index Page

SpeedTest-EX Chart Page

项目相关背景

本项目是基于speedtest-go项目的大幅度重构. speedtest-go是使用Go语言重新实现的librespeed后端, 而本项目是基于speedtest-go项目再次重构. LiberSpeed是一个开源的网络测速项目, 其使用php实现后端, 而本项目则使用Go语言和Gin框架实现后端, 使程序更加轻量化且易于部署.

License

Copyright (C) 2016-2020 Federico Dossena

Copyright (C) 2020 Maddie Zhan

Copyright (C) 2025 WJQSERVER

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this program. If not, see https://www.gnu.org/licenses/lgpl.

Extension points exported contracts — how you extend this code

DataAccess (Interface)
(no doc) [1 implementers]
database/database.go

Core symbols most depended-on inside this repo

tverb
called by 11
web/pages/speedtest_worker.js
tlog
called by 9
web/pages/speedtest_worker.js
abort
called by 6
web/pages/speedtest.js
printStageTitle
called by 5
cli/cli.go
twarn
called by 5
web/pages/speedtest_worker.js
buildURL
called by 4
cli/cli.go
printResult
called by 4
cli/cli.go
clearRequests
called by 4
web/pages/speedtest_worker.js

Shape

Function 77
Struct 26
Method 24
Class 2
Interface 1

Languages

Go72%
TypeScript28%

Modules by API surface

cli/cli.go20 symbols
web/pages/speedtest_worker.js16 symbols
web/pages/speedtest.js16 symbols
web/chart.go11 symbols
config/config.go11 symbols
main.go9 symbols
database/database.go6 symbols
database/bolt/bolt.go6 symbols
web/garbage.go5 symbols
web/pages/script.js4 symbols
results/telemetry.go4 symbols
web/revping.go3 symbols

For agents

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

⬇ download graph artifact

Ask about this repo answers extend the page