Velo:使用 Go 与 Wails 构建的跨平台网络速度监控器
Source: Dev.to
Introduction
你是否曾经感觉网络连接很慢,却不确定这只是瞬间的卡顿还是持续的模式?
我构建了 Velo,这是一款桌面应用,帮助你在不需要手动在浏览器中运行测速的情况下,随时间跟踪网络速度。
在本文中,我将分享我为何构建它、它是如何工作的以及背后的技术栈。
Links
GitHub Repository:
What is Velo?
Velo 是一款网络速度测量工具,设计为桌面应用运行。
它会每小时自动运行一次测速,记录你的下载、上传和延迟指标。数据会在交互式图表上可视化,让你一眼就能看出趋势。你也可以随时手动触发测量。
Fun fact: 名称 velo 来自意大利语 veloce,意为“快速”。我选择它纯粹是因为听起来很酷。
Motivation
我注意到我的网络在夜间会变得迟缓。通常我会打开 FAST.com 检查速度,但每次都要打开浏览器很麻烦,而且一次测试只能显示当前速度——无法揭示趋势。
我想要一个能够自动定期测量并记录速度的应用,以便我能随时间分析模式。
虽然已有类似工具,但自己动手实现是学习的最佳方式。
Features
- Speed Test: 使用
speedtest-go测量下载速度、上传速度和延迟。 - Automatic Monitoring: 在后台运行,每小时进行一次测速。
- Visualization: 在交互式的时间‑对‑速度图表上展示网络历史。
- Cross‑Platform: 支持 macOS、Windows 和 Linux。
Tech Stack
- Framework: Wails v2
- Backend: Go (v1.25+)
- Frontend: Vue.js (Node.js & npm)
- Library:
speedtest-go用于核心测量逻辑。
Getting Started
如果你想尝试或贡献,可以从源码构建。
Prerequisites
- Go (v1.25 或更高)
- Node.js & npm
- Wails CLI:
go install github.com/wailsapp/wails/v2/cmd/wails@latest
Installation & Running
Clone the repository:
git clone https://github.com/kanywst/velo.git
cd velo
Install dependencies:
# Backend
go mod tidy
# Frontend
cd frontend
npm install
cd ..
Run in development mode:
wails dev
Build for production:
wails build
The binary will be generated in build/bin.
Conclusion
Velo 是一个源于验证 ISP 性能这一简单需求的个人项目。它仍在持续迭代中,可能还潜藏着一些 bug。我的计划是不断改进并在发现问题时进行修复。
试试看并告诉我你的想法。如果你觉得它有用(或仅仅喜欢这个名字),在 GitHub 上点个星星将不胜感激。
