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

devtools/2024/9/24 3:00:30/

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

很酷的一个终端软件。

18f47e79ed3cd5c0879908038b885486.png ec7ee042856776791f7bdaa71bcdcaa7.png

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语言中文社区


http://www.ppmy.cn/devtools/88594.html

相关文章

二叉树OJ题

1. 单值二叉树 思路&#xff1a;判断根节点是否为空&#xff0c;若为空&#xff0c;则返回 true , 若不为空&#xff0c;看根节点的左孩子是否为空&#xff0c;若为空&#xff0c;则销毁该函数栈帧&#xff0c;返回根节点&#xff0c;若根节点的左孩子不为空&#xff0c;再比较…

Kylin系列-入门

Kylin系列-入门 Apache Kylin是一个开源的分布式分析引擎&#xff0c;提供Hadoop/Spark之上的SQL查询接口及多维分析&#xff08;OLAP&#xff09;能力&#xff0c;以支持超大规模数据。以下是对Kylin系列的入门介绍&#xff1a; 一、基本概念 1. 定义 Apache Kylin是由eBa…

数据库的管理

1、官网下载或者wget tar -xvf mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar 2、确定mysql-community-server正常安装之后就可以开始配置 3、初始化mysqld 服务 mysqld initeialize 4、启动服务 systemctl start mysqld 5、添加开机启动列表 systecmctrl enable mysqld在/var…

数据结构:带索引的双链表IDL

IDLindexed double list 如图&#xff0c;下方是一个双链表&#xff0c;上方是索引。索引储存为结构体数组&#xff0c;结构体内包括一个指针&#xff0c;和长度。 假设索引只有一个&#xff0c;这时&#xff0c;它应该指向双链表的中间&#xff0c;这样才能提高搜索效率。称…

MGRE综合实验

目录 一、实验拓扑 二、实验要求 三、实验思路 四、实验步骤 1.配置IP地址 2.R1和R5间使用PPP的PAP认证&#xff0c;R5为主认证方 3.R2与R5之间使用ppp的CHAP认证&#xff0c;R5为主认证方 4.R3与R5之间使用HDLC封装 5.R1、R2、R3构建一个MGRE环境&#xff0c;R1为中心站…

【Python系列】Python 字典合并

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

从零开始写一个微信小程序

从零开始写一个微信小程序可以分为几个步骤。以下是一个详细的指南,帮助你从头到尾完成一个简单的微信小程序。 ### 一、准备工作 1. **注册微信小程序账号**: - 前往[微信公众平台](https://mp.weixin.qq.com/)注册一个小程序账号。 - 进行企业认证(个人账号需要申…

如何构建AI产品:OpenAI与前Shopify产品负责人Miqdad Jaffer的经验分享

一、引言 构建AI产品是一项复杂且充满挑战的任务&#xff0c;尤其是当涉及到面向消费者的解决方案时。在最近的一期播客节目中&#xff0c;OpenAI 和前Shopify产品负责人 Miqdad Jaffer 分享了他在构建AI产品的经验和策略。下面我们将探讨构建AI产品的最佳实践&#xff0c;以及…