Tunglies 15a1770ee9 feat: migrate mihomo to use kode-bridge IPC on Windows and Unix (#4051)
* Refactor Mihomo API integration and remove crate_mihomo_api

- Removed the `mihomo_api` crate and its dependencies from the project.
- Introduced `IpcManager` for handling IPC communication with Mihomo.
- Implemented IPC methods for managing proxies, connections, and configurations.
- Updated `MihomoManager` to utilize `IpcManager` instead of the removed crate.
- Added platform-specific IPC socket path handling for macOS, Linux, and Windows.
- Cleaned up related tests and configuration files.

* fix: remove duplicate permission entry in desktop capabilities

* refactor: replace MihomoManager with IpcManager and remove Mihomo module

* fix: restore tempfile dependency in dev-dependencies

* fix: update kode-bridge dependency to use git source from the dev branch

* feat: migrate mihomo to use kode-bridge IPC on Windows

This commit implements a comprehensive migration from legacy service IPC to the kode-bridge library for Windows IPC communication. Key changes include:

Replace service_ipc with kode-bridge IpcManager for all mihomo communications
Simplify proxy commands using new caching mechanism with ProxyRequestCache
Add Windows named pipe (\.\pipe\mihomo) and Unix socket IPC endpoint configuration
Update Tauri permissions and dependencies (dashmap, tauri-plugin-notification)
Add IPC logging support and improve error handling
Fix Windows IPC path handling in directory utilities
This migration enables better cross-platform IPC support and improved performance for mihomo proxy core communication.

* doc: add IPC communication with Mihomo kernel, removing Restful API dependency

* fix: standardize logging type naming from IPC to Ipc for consistency

* refactor: clean up and optimize code structure across multiple components and services

- Removed unnecessary comments and whitespace in various files.
- Improved code readability and maintainability by restructuring functions and components.
- Updated localization files for consistency and accuracy.
- Enhanced performance by optimizing hooks and utility functions.
- General code cleanup in settings, pages, and services to adhere to best practices.

* fix: simplify URL formatting in test_proxy_delay method

* fix: update kode-bridge dependency to version 0.1.3 and change source to crates.io

* fix: update macOS target versions in development workflow

* Revert "fix: update macOS target versions in development workflow"

This reverts commit b9831357e462e0f308d11a9a53cb718f98ae1295.

* feat: enhance IPC path handling for Unix systems and improve directory safety checks

* feat: add conditional compilation for Unix-specific IPC path handling

* chore: update cagro.lock

* feat: add external controller configuration and UI support

* Refactor proxy and connection management to use IPC-based commands

- Updated `get_proxies` function in `proxy.rs` to call the new IPC command.
- Renamed `get_refresh_proxies` to `get_proxies` in `ipc/general.rs` for consistency.
- Added new IPC commands for managing proxies, connections, and configurations in `cmds.ts`.
- Refactored API calls in various components to use the new IPC commands instead of HTTP requests.
- Improved error handling and response management in the new IPC functions.
- Cleaned up unused API functions in `api.ts` and redirected relevant calls to `cmds.ts`.
- Enhanced connection management features including health checks and updates for proxy providers.

* chore: update dependencies and improve error handling in IPC manager

* fix: downgrade zip dependency from 4.3.0 to 4.2.0

* feat: Implement traffic and memory data monitoring service

- Added `TrafficService` and `TrafficManager` to manage traffic and memory data collection.
- Introduced commands to get traffic and memory data, start and stop the traffic service.
- Integrated IPC calls for traffic and memory data retrieval in the frontend.
- Updated `AppDataProvider` and `EnhancedTrafficStats` components to utilize new data fetching methods.
- Removed WebSocket connections for traffic and memory data, replaced with IPC polling.
- Added logging for better traceability of data fetching and service status.

* refactor: unify external controller handling and improve IPC path resolution

* fix: replace direct IPC path retrieval with guard function for external controller

* fix: convert external controller IPC path to string for proper insertion in config map

* fix: update dependencies and improve IPC response handling

* fix: remove unnecessary unix conditional for ipc path import

* Refactor traffic and memory monitoring to use IPC stream; remove TrafficService and TrafficManager. Introduce new IPC-based data retrieval methods for traffic and memory, including formatted data and system overview. Update frontend components to utilize new APIs for enhanced data display and management.

* chore: bump crate rand version to 0.9.2

* feat: Implement enhanced traffic monitoring system with data compression and sampling

- Introduced `useTrafficMonitorEnhanced` hook for advanced traffic data management.
- Added `TrafficDataSampler` class for handling raw and compressed traffic data.
- Implemented reference counting to manage data collection based on component usage.
- Enhanced data validation with `SystemMonitorValidator` for API responses.
- Created diagnostic tools for monitoring performance and error tracking.
- Updated existing hooks to utilize the new enhanced monitoring features.
- Added utility functions for generating and formatting diagnostic reports.

* feat(ipc): improve URL encoding and error handling for IPC requests

- Add percent-encoding for URL paths to handle special characters properly
- Enhance error handling in update_proxy with proper logging
- Remove excessive debug logging to reduce noise
- Update kode-bridge dependency to v0.1.5
- Fix JSON parsing error handling in PUT requests

Changes include:
- Proper URL encoding for connection IDs, proxy names, and test URLs
- Enhanced error handling with fallback responses in updateProxy
- Comment out verbose debug logs in traffic monitoring and data validation
- Update dependency version for improved IPC functionality

* feat: major improvements in architecture, traffic monitoring, and data validation

* Refactor traffic graph components: Replace EnhancedTrafficGraph with EnhancedCanvasTrafficGraph, improve rendering performance, and enhance visual elements. Remove deprecated code and ensure compatibility with global data management.

* chore: update UPDATELOG.md for v2.4.0 release, refine traffic monitoring system details, and enhance IPC functionality

* chore: update UPDATELOG.md to reflect removal of deprecated MihomoManager and unify IPC control

* refactor: remove global traffic service testing method from cmds.ts

* Update src/components/home/enhanced-canvas-traffic-graph.tsx

* Update src/hooks/use-traffic-monitor-enhanced.ts

* Update src/components/layout/layout-traffic.tsx

* refactor: remove debug state management from LayoutTraffic component

---------
2025-07-24 00:49:55 +08:00
2025-03-22 11:07:20 +08:00
2022-11-12 11:37:23 +08:00
2025-06-12 10:57:33 +08:00
2021-12-22 01:12:32 +08:00
2023-10-21 23:53:57 +08:00

Clash
Continuation of Clash Verge

A Clash Meta GUI based on Tauri.

Preview

Dark Light
预览 预览

Install

请到发布页面下载对应的安装包:Release page
Go to the Release page to download the corresponding installation package
Supports Windows (x64/x86), Linux (x64/arm64) and macOS 10.15+ (intel/apple).

我应当怎样选择发行版

版本 特征 链接
Stable 正式版,高可靠性,适合日常使用。 Release
Alpha 早期测试版,功能未完善,可能存在缺陷。 Alpha
AutoBuild 滚动更新版,持续集成更新,适合开发测试。 AutoBuild

安装说明和常见问题,请到 文档页 查看


TG 频道: @clash_verge_rev

Promotion

狗狗加速 —— 技术流机场 Doggygo VPN

  • 高性能海外机场,免费试用,优惠套餐,解锁流媒体,全球首家支持 Hysteria 协议。
  • 使用 Clash Verge 专属邀请链接注册送 3 天,每天 1G 流量免费试用:点此注册
  • Clash Verge 专属 8 折优惠码: verge20 (仅有 500 份)
  • 优惠套餐每月仅需 15.8 元160G 流量,年付 8 折
  • 海外团队,无跑路风险,高达 50% 返佣
  • 集群负载均衡设计,高速专线(兼容老客户端)极低延迟无视晚高峰4K 秒开
  • 全球首家 Hysteria 协议机场,现已上线更快的 Hysteria2 协议(Clash Verge 客户端最佳搭配)
  • 解锁流媒体及 ChatGPT
  • 官网:https://狗狗加速.com

本项目的构建与发布环境由 YXVM 独立服务器全力支持,

感谢提供 独享资源、高性能、高速网络 的强大后端环境。如果你觉得下载够快、使用够爽,那是因为我们用了好服务器!

🧩 YXVM 独立服务器优势:

  • 🌎 优质网络,回程优化,下载快到飞起
  • 🔧 物理机独享资源非VPS可比性能拉满
  • 🧠 适合跑代理、搭建 WEB 站 CDN 站 、搞 CI/CD 或任何高负载应用
  • 💡 支持即开即用多机房选择CN2 / IEPL 可选
  • 📦 本项目使用配置已在售,欢迎同款入手!
  • 🎯 想要同款构建体验?立即下单 YXVM 独立服务器!

Features

  • 基于性能强劲的 Rust 和 Tauri 2 框架
  • 内置Clash.Meta(mihomo)内核,并支持切换 Alpha 版本内核。
  • 简洁美观的用户界面,支持自定义主题颜色、代理组/托盘图标以及 CSS Injection
  • 配置文件管理和增强Merge 和 Script配置文件语法提示。
  • 系统代理和守卫、TUN(虚拟网卡) 模式。
  • 可视化节点和规则编辑
  • WebDav 配置备份和同步

FAQ

Refer to Doc FAQ Page

Donation

捐助Clash Verge Rev的开发

Development

See CONTRIBUTING.md for more details.

To run the development server, execute the following commands after all prerequisites for Tauri are installed:

pnpm i
pnpm run check
pnpm dev

Contributions

Issue and PR welcome!

Acknowledgement

Clash Verge rev was based on or inspired by these projects and so on:

License

GPL-3.0 License. See License here for details.

Description
A modern GUI client based on Tauri, designed to run in Windows, macOS and Linux for tailored proxy experience
Readme GPL-3.0 78 MiB
2025-11-12 22:35:38 +00:00
Languages
TypeScript 54.4%
Rust 39.5%
JavaScript 3.3%
NSIS 2%
SCSS 0.3%
Other 0.5%