觉学社 04月07日 00:29
【随想】从 Tauri 2.0 看 Rust API 设计权衡
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

Tauri 2.0重写IPC并支持raw request,探讨为何此支持拖到2.0,提到Enum加变体是breaking change,还强调了non_exhaustive在API设计中的重要性,以及Tauri团队在灵活性、性能和易用性间的平衡。

🧐Tauri 2.0重写IPC并支持raw request

💡Enum加变体是breaking change,需在2.0进行

❗non_exhaustive在API设计中很重要

🤔Tauri团队在多方面找到平衡点

原创 张汉东 2024-10-05 21:33 美国

看到 Tauri 2.0 重写了 IPC ,支持 raw request ,我好奇为什么支持 raw request 需要拖到 2.0 在做,不就是加个变体的事吗?

看到 Tauri 2.0 重写了 IPC ,支持 raw request ,我好奇为什么支持 raw request 需要拖到 2.0 在做,不就是加个变体的事吗?


之前 RustDesk 想用 tauri,发现它 IPC 性能很低就没用。

后来被群友提醒我想起来了,Enum 加变体是 breaking change,所以必须放到 2.0 ,除非加了 non_exhaustive 属性。

这里就体现 non_exhaustive 在 API 设计方面的重要性了。然而最新的这个 Enum 类型依然没有增加 non_exhaustive ,看来以后要增加新的支持就得 3.0 了。

在大多数情况下,使用 non_exhaustive 不会对性能产生显著影响。编译器仍然可以对已知的变体进行优化。唯一可能的性能影响是在 match 语句中,因为编译器无法确保所有情况都被覆盖,可能会禁用某些优化。

不过话说回来,已经都支持 raw 了 ,其他具体的消息类型在某些情况下可能就显得不那么必要了。不过,即使有了 raw 请求支持,保留一些常用的预定义类型仍然可能有其价值,特别是在提供良好的开发体验和 API 直观性方面。

也许 Tauri 团队是在灵活性、性能和易用性之间找到了一个平衡点。


阅读原文

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Tauri 2.0 IPC non_exhaustive 平衡
相关文章