【Rust日报】query.rs - 搜索Rust的一切

科技   2024-07-30 11:10   加拿大  

rucola - 在终端中管理你的markdown文档

很酷的一个终端软件。

query.rs - 搜索Rust的一切

https://query.rs/

文档,crate,错误代码等等。 就是Rust生态的google.

使用Rust 10年后,我想吐槽几句

这篇文章分享了作者在使用Rust编程语言中的经验,特别是一些主要的痛点和问题。以下是总结:

背景:

  • 作者使用Rust约10年,参与过多种项目,包括桌面GUI应用、服务器后端、CLI程序、通过WASM实现的沙箱脚本接口以及多个游戏相关项目。
  • 作者还熟悉多种其他编程语言,如Java、Python、Typescript、Elixir和C,但更喜欢Rust。

主要问题:

  1. 错误处理(Result<T, E>):

  • Rust的错误处理机制虽然强制开发者处理错误,但在实际使用中,尤其是库开发中,创建和转换错误类型非常麻烦。
  • 在应用代码中,通常只需要传播错误并向用户显示结果,但Rust缺乏Java那样的完善的错误日志和调用栈信息。
  • 作者建议Rust标准化一个类似于Box的类型,自动附加上下文信息,以便在函数间传播错误。
  • 模块系统:

    • Rust的模块系统过于灵活,容易导致意外暴露类型或模块。
    • 管理跨crate的代码组织困难,特别是在大型项目(如Bevy)的单一仓库中。
    • 作者认为Rust应更加显式,类似于Java的模块路径与文件系统文件夹对应的方式。
  • 编译时间和IDE工具:

    • 编译时间和IDE中的错误检查速度太慢,特别是对于大型项目(如Bevy)。
    • Rust的编译单元设计(1 crate = 1编译单元)导致每次修改都需要重新编译整个crate及其依赖项。
    • Rust分析器在大型项目中表现不佳,经常重新索引整个项目。

    总结:

    • 作者认为这些问题对Rust的使用造成了重大影响,并希望能有解决这些问题的方案。
    • 尽管有这些问题,作者依然非常喜欢Rust,并且计划继续使用它。

    https://www.reddit.com/r/rust/comments/1e978l7/ive_used_and_loved_rust_for_10_years_here_are_the/

    自己动手用Rust实现WebSocket

    这篇讲了WebSocket的底层机制,以及如何使用Rust一步一步实现WebSocket.

    https://www.thespatula.io/rust/rust_websocket/

    --

    From 日报小组 Mike

    社区学习交流平台订阅:

    • Rustcc论坛: 支持rss
    • 微信公众号:Rust语言中文社区


    Rust语言中文社区
    Rust官方及社区最新信息搜集、文章推送,教程学习,技巧分享,社区交流。信息来源是整个全球Rust社区。
     最新文章