109 lines
3.6 KiB
Markdown
109 lines
3.6 KiB
Markdown
# CryptoCoin · 桌面行情挂件
|
||
|
||
> Windows 桌面迷你行情挂件,基于 **Tauri 2 + Rust + 币安 24hr 行情 API**。
|
||
|
||
一个常驻桌面的轻量挂件,实时显示加密货币与美股的最新价格和 24 小时涨跌幅,全部操作通过系统托盘完成。
|
||
|
||
## 功能特性
|
||
|
||
- 💹 **实时行情** — 拉取币安 `24hr ticker`,显示最新价与涨跌幅,红绿配色一目了然
|
||
- 🪙 **多标的支持** — 内置主流加密货币(BTC / ETH / SOL / BNB…)与美股标的(AAPL / TSLA / NVDA…),托盘勾选自由组合
|
||
- 🎨 **多种背景主题** — `dark` / `slate` / `navy` / `charcoal` / `midnight` / `forest` / `light`,托盘一键切换
|
||
- ⏱️ **可调刷新间隔** — 3s / 5s / 10s / 30s / 1m / 3m / 5m / 10m,避免 API 限流
|
||
- 🌐 **直连或代理** — 本机无法直连币安时,可走 Cloudflare Worker 代理,直连与代理一键切换
|
||
- 🖱️ **托盘菜单操作** — 选择标的、切换主题、调整间隔、打开设置目录、直连/代理切换
|
||
- 💾 **便携配置** — 配置保存在 exe 同级 `data/` 目录,迁移方便
|
||
|
||
## 技术栈
|
||
|
||
| 层级 | 技术 |
|
||
|------|------|
|
||
| 桌面框架 | [Tauri 2](https://v2.tauri.app/) |
|
||
| 后端 | Rust(`reqwest` 请求、`serde` 序列化、系统托盘) |
|
||
| 前端 | TypeScript + Vite 6(JetBrains Mono 字体) |
|
||
| 数据源 | 币安 24hr Ticker API(现货 / 合约) |
|
||
| 代理(可选) | Cloudflare Worker |
|
||
|
||
## 快速开始
|
||
|
||
### 环境要求
|
||
|
||
- [Node.js](https://nodejs.org/) ≥ 18
|
||
- [Rust](https://www.rust-lang.org/tools/install) 工具链
|
||
-(Windows)[Visual Studio Build Tools](https://visualstudio.microsoft.com/downloads/)
|
||
|
||
### 开发运行
|
||
|
||
```bash
|
||
npm install
|
||
npm run tauri dev
|
||
```
|
||
|
||
### 构建安装包
|
||
|
||
```bash
|
||
npm run tauri build
|
||
```
|
||
|
||
> 修改代码后必须重新打包,旧 exe 不会包含新逻辑。
|
||
|
||
安装包:`src-tauri/target/release/bundle/nsis/CryptoCoin_*_x64-setup.exe`
|
||
|
||
## 配置说明
|
||
|
||
配置保存在 **与 `CryptoCoin.exe` 同级** 的 `data` 目录(开发时位于 `target/debug/data/` 等):
|
||
|
||
```
|
||
D:\WindowsApp\CryptoCoin\data\settings.json
|
||
```
|
||
|
||
> 首次从旧版 `%APPDATA%\com.smy.cryptocoin\` 升级时会自动迁移 `settings.json` 到 `data`。
|
||
> 托盘「打开设置目录」可直接定位该文件夹。
|
||
|
||
示例:
|
||
|
||
```json
|
||
{
|
||
"enabled": ["BTCUSDT", "ETHUSDT"],
|
||
"proxyBaseUrl": "https://bn-api-proxy.smyhub.com",
|
||
"useProxy": true,
|
||
"refreshIntervalMs": 5000,
|
||
"backgroundTheme": "dark"
|
||
}
|
||
```
|
||
|
||
| 字段 | 说明 |
|
||
|------|------|
|
||
| `enabled` | 展示的标的列表(也可在托盘勾选) |
|
||
| `proxyBaseUrl` | 代理地址;切回直连时仍会保留,便于下次复用 |
|
||
| `useProxy` | `true` 走代理,`false` 直连 |
|
||
| `refreshIntervalMs` | 刷新间隔,最小 **3000**(3 秒,避免限流) |
|
||
| `backgroundTheme` | `dark` / `slate` / `navy` / `charcoal` / `midnight` / `forest` / `light` |
|
||
|
||
## 代理 Worker
|
||
|
||
本机无法直连 `api.binance.com` 时,可部署内置的 Cloudflare Worker 转发行情请求。
|
||
|
||
详见 [cryptocoin-binance-proxy/README.md](cryptocoin-binance-proxy/README.md)。
|
||
|
||
## 项目结构
|
||
|
||
```text
|
||
CryptoCoin/
|
||
├── src/ # 前端(TypeScript + Vite)
|
||
├── src-tauri/
|
||
│ ├── src/
|
||
│ │ ├── lib.rs # 主逻辑 + 托盘
|
||
│ │ ├── coins.rs # 标的定义(加密货币 / 美股)
|
||
│ │ └── settings.rs # 设置、主题、刷新间隔
|
||
│ ├── settings.json # 配置模板
|
||
│ └── tauri.conf.json
|
||
├── cryptocoin-binance-proxy/ # Cloudflare Worker 代理
|
||
├── package.json
|
||
└── README.md
|
||
```
|
||
|
||
## 许可证
|
||
|
||
MIT
|