Tunglies
e6b7d512fb
feat: implement draft management system for concurrent editing and committing of data
2025-10-15 08:32:52 +08:00
Tunglies
355a18e5eb
refactor(async): migrate from sync-blocking async execution to true async with unified AsyncHandler::spawn ( #4502 )
...
* feat: replace all tokio::spawn with unified AsyncHandler::spawn
- 🚀 Core Improvements:
* Replace all tokio::spawn calls with AsyncHandler::spawn for unified Tauri async task management
* Prioritize converting sync functions to async functions to reduce spawn usage
* Use .await directly in async contexts instead of spawn
- 🔧 Major Changes:
* core/hotkey.rs: Use AsyncHandler::spawn for hotkey callback functions
* module/lightweight.rs: Async lightweight mode switching
* feat/window.rs: Convert window operation functions to async, use .await internally
* feat/proxy.rs, feat/clash.rs: Async proxy and mode switching functions
* lib.rs: Window focus handling with AsyncHandler::spawn
* core/tray/mod.rs: Complete async tray event handling
- ✨ Technical Advantages:
* Unified task tracking and debugging capabilities (via tokio-trace feature)
* Better error handling and task management
* Consistency with Tauri runtime
* Reduced async boundaries for better performance
- 🧪 Verification:
* Compilation successful with 0 errors, 0 warnings
* Maintains complete original functionality
* Optimized async execution flow
* feat: complete tokio fs migration and replace tokio::spawn with AsyncHandler
🚀 Major achievements:
- Migrate 8 core modules from std::fs to tokio::fs
- Create 6 Send-safe wrapper functions using spawn_blocking pattern
- Replace all tokio::spawn calls with AsyncHandler::spawn for unified async task management
- Solve all 19 Send trait compilation errors through innovative spawn_blocking architecture
🔧 Core changes:
- config/profiles.rs: Add profiles_*_safe functions to handle Send trait constraints
- cmd/profile.rs: Update all Tauri commands to use Send-safe operations
- config/prfitem.rs: Replace append_item calls with profiles_append_item_safe
- utils/help.rs: Convert YAML operations to async (read_yaml, save_yaml)
- Multiple modules: Replace tokio::task::spawn_blocking with AsyncHandler::spawn_blocking
✅ Technical innovations:
- spawn_blocking wrapper pattern resolves parking_lot RwLock Send trait conflicts
- Maintain parking_lot performance while achieving Tauri async command compatibility
- Preserve backwards compatibility with gradual migration strategy
🎯 Results:
- Zero compilation errors
- Zero warnings
- All async file operations working correctly
- Complete Send trait compliance for Tauri commands
* feat: refactor app handle and command functions to use async/await for improved performance
* feat: update async handling in profiles and logging functions for improved error handling and performance
* fix: update TRACE_MINI_SIZE constant to improve task logging threshold
* fix(windows): convert service management functions to async for improved performance
* fix: convert service management functions to async for improved responsiveness
* fix(ubuntu): convert install and reinstall service functions to async for improved performance
* fix(linux): convert uninstall_service function to async for improved performance
* fix: convert uninstall_service call to async for improved performance
* fix: convert file and directory creation calls to async for improved performance
* fix: convert hotkey functions to async for improved responsiveness
* chore: update UPDATELOG.md for v2.4.1 with major improvements and performance optimizations
2025-08-26 01:49:51 +08:00
Tunglies
b57c6e408a
chore: git hooks for linter and formatter
2025-03-13 12:51:20 +08:00
Tunglies
4ed36f6223
refacture: Mihomo API integration ( #2900 )
...
* feat: add mihomo_api crate as a workspace member
Added a new mihomo_api crate to handle interactions with the Mihomo API. This modular approach provides a dedicated interface for fetching and managing proxy data from Mihomo servers. The implementation includes functionality to refresh and retrieve both proxies and provider proxies with proper error handling and timeouts. Added this crate as a workspace member and included it as a dependency in the main project.
* Refactors Mihomo API integration
Simplifies proxy fetching by removing the MihomoManager structure.
Updates the get_proxies and get_providers_proxies functions to directly use the mihomo_api module.
Removes unused Mihomo API related files and modules for cleaner codebase.
Enhances overall maintainability and performance.
2025-03-05 00:45:08 +08:00
Tunglies
3b69465016
feat: add Mihomo API modules and manager ( #2869 )
...
• Introduce new API caller implementations for Mihomo in model and module layers.
• Add configuration and API integration files under /src-tauri/src/config/api and /src-tauri/src/model/api.
• Implement a singleton MihomoAPICaller with async API call support and integration tests.
• Create a new MihomoManager module to refresh and fetch proxies from the API.
• Update Cargo.lock and Cargo.toml with additional dependencies (async-trait, env_logger, mockito, tempfile, etc.) related to the Mihomo API support.
2025-03-03 19:31:44 +08:00
huzibaca
15bd7324fe
feat: encryption configuration properties
2024-11-20 07:27:42 +08:00
MystiPanda
c698b24e01
chore: update & fmt & clippy
2024-06-12 10:00:22 +08:00
MystiPanda
a88d149dad
fix: auto proxy changed by guard
2024-05-26 19:07:14 +08:00
MystiPanda
b9ec94d835
feat: Support PAC Mode
2024-05-26 17:59:39 +08:00
GyDi
bedd3abf8a
refactor: done
2022-11-18 18:18:41 +08:00
GyDi
902aed671a
refactor: wip
2022-11-15 01:33:50 +08:00
GyDi
837422fbb8
refactor: wip
2022-11-14 01:26:33 +08:00
GyDi
a45c61f19e
chore: format rust code
2022-11-12 11:37:23 +08:00
GyDi
2d00ddad2b
refactor: optimize
2022-09-11 20:58:55 +08:00
GyDi
142a62e371
feat: refactor
2022-08-12 03:20:55 +08:00
GyDi
ff6abf08b7
feat: adjust tun mode config
2022-08-11 03:26:08 +08:00
GyDi
2fd921cd60
feat: reimplement enhanced mode
2022-08-11 02:55:10 +08:00
GyDi
1d38739016
refactor: rename
2022-01-08 01:27:25 +08:00
GyDi
694a7760b7
feat: adjust code
2021-12-18 02:29:54 +08:00
GyDi
db802e959d
chore: fix mod
2021-12-14 15:56:54 +08:00
GyDi
ef3b10fa8f
feat: change the naming strategy
2021-12-14 00:40:41 +08:00
GyDi
5b826a3767
feat: init verge config struct
2021-12-13 02:29:02 +08:00