前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【Rust日报】2022-07-25 如何修复和预防 buffered streams 死锁

【Rust日报】2022-07-25 如何修复和预防 buffered streams 死锁

作者头像
MikeLoveRust
发布于 2022-11-28 03:12:06
发布于 2022-11-28 03:12:06
5150
举报

如何修复和预防 buffered streams 死锁

Rust 消除了在其他语言中流行的各种愚蠢的bug和陷阱,使开发和维护我们的项目变得更加容易。不幸的是,当涉及异步编程中常见问题时,Rust在本质上没有那么强的能力。事实上,异步编程在Rust中要比在 Javascript 中难得多.

上个月,作者的服务因为一个严重的死锁bug而瘫痪了好几天,这不是他们看到的第一个死锁了, 至少是第四个了。就在上周,作者所在公司又看到了一次死锁导致的服务中断。幸运的是,5个死锁中有4个具有相同的根本原因: futures::stream::Buffered 天生就容易发生死锁。在这篇文章中,作者将解释这个问题,并探索防止这种情况再次发生的方法。

原文链接: https://blog.polybdenum.com/2022/07/24/fixing-the-next-thousand-deadlocks-why-buffered-streams-are-broken-and-how-to-make-them-safer.html

使用 actix 和 mongo 创建支持 GraphQL Rust 项目

这是一个手把手教你使用 Rust + Actix + mongoDB 来创建一个支持 GraphQL 的 web 服务, 里面有详尽的步骤和代码.

原文链接: https://dev.to/hackmamba/create-a-graphql-powered-project-management-endpoint-in-rust-and-mongodb-actix-web-version-3j1

STM32 Emulator

该项目的目标是模拟3D打印机,但任何类型的 stm32 控制器固件都可以工作。

github地址: https://github.com/nviennot/stm32-emulator

LanguageTool-Rust

LanguageTool 是一个开放源码的语法风格检查器。它可以纠正20多种语言,并免费使用,更多信息请访问languagetool.org. 他有一个公共API,你也可以在本地托管自己的服务器

LanguageTool-Rust 可以帮助你通过 Rust 代码轻松地与这些服务器进行通信!

github 地址: https://github.com/jeertmans/languagetool-rust

--

From 日报小组 BobQin,FBI小白

社区学习交流平台订阅:

  • Rustcc论坛: 支持rss
  • 微信公众号:Rust语言中文社区
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Rust语言学习交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Rust日报】2021-06-07 是什么让 Rust 撩动了我
这篇文章的目标是那些从 垃圾回收语言 转到 Rust 的人, 例如 python 或者 javascript.
MikeLoveRust
2021/06/16
5240
【Rust日报】2021-06-21 使用 Rust 编写一个简单的监视器
原文链接: https://www.rotoclone.zone/blog/posts/raspberry-pi-monitoring
MikeLoveRust
2021/07/16
9640
【Rust日报】2022-07-04 使用 Diesel 和 PostgreSQL 创建 Rust API
本教程使用 Diesel 和 PostgreSQL 建立一个Rust应用程序, 内容包括:
MikeLoveRust
2022/11/28
6350
【Rust日报】2022-07-18 Rust 1.62.1 pre-release 测试
官网通告: 1.62. pre-release 已经可以测试了, 大家可以提前安装尝鲜测试了.
MikeLoveRust
2022/11/28
3270
【Rust日报】2022-03-07 LRU 的 Rust 实现
作者在实现一个 DNS resolver 的时候, 遇到了缓存问题. 于是, 自己实现了一个可过期, size-bounded 的 LRU 缓存. 作者从简单的缓存开始, 一直到实现最后的 LRU, 每一步都有详细的步骤和代码.
MikeLoveRust
2022/03/24
5930
【Rust日报】2021-03-08 3 月 27 深圳 Meetup 等你来
由华为、openEuler 、Netwarps、开源中国和Rust中文社区联合主办,包括六大议题 :
MikeLoveRust
2021/03/15
5630
【Rust日报】2021-03-08 3 月 27 深圳 Meetup 等你来
【Rust日报】2022-07-11 嵌入式 Rust 学习
这是一个嵌入式入门教学视频, 不需要任何硬件或复杂的设置. 在这个视频中,作者展示了如何通过 ARM Cortex M0+ 系列处理器 来学习嵌入式 Rust.
MikeLoveRust
2022/11/28
2690
【Rust日报】2022-07-11 嵌入式 Rust 学习
【Rust日报】2022-08-08 基于Rust能力的Linux runtime
BUS1一开始是作为Linux内核IPC模块出现的,虽然偶尔还会提交到过时的BUS1内核模块,但相关的(红帽)开发人员一直主要致力于Dbus-Broker,作为高性能的用户空间D-Bus实现,它比参考的D-Bus代码提供了更大的速度和可靠性。现在出现在BUS1保护伞下的还有“r-linux”,它是一个由rust编写的、基于功能的Linux运行时.
MikeLoveRust
2022/11/28
4800
【Rust日报】2022-08-08 基于Rust能力的Linux runtime
【Rust日报】2021-07-12 RFC 3128: I/O Safety
Rust 现在已经有一个被采纳的 I/O 安全的 RFC. 该 RFC 用于处理 文件操作符和 sockets 等的生命周期. 这让编写底层安全的系统对象有了可能.
MikeLoveRust
2021/07/16
3420
【Rust日报】2021-07-12 RFC 3128: I/O Safety
【Rust日报】2020-11-23 使用 Enums 来减少内存使用
Enum 在不存储真正数据的时候,仅仅需要1byte就可以代表多种状态. 根据这个特性, 作者把一些特殊场景下的内存使用大大降低了.
MikeLoveRust
2020/12/07
5720
【Rust日报】2021-05-31 tightness 驱动开发
tightness 并不是指内存的紧凑, 而是设计数据结构时一些理念. 在这里是指 类型定义中不变量与其方法的比例.
MikeLoveRust
2021/06/16
4020
【Rust日报】2022-11-28 使用 Rust 编写解释型语言
从理论基础, 内存分配, 真实实践, GC 等方面循序渐进的指导如何使用 Rust 来编写解释型语言.
MikeLoveRust
2023/02/10
5420
【Rust日报】2022-11-28 使用 Rust 编写解释型语言
【Rust日报】2021-01-18 Facebook使用 Rust 的简单介绍
github pull request: https://github.com/rust-lang/rust/pull/77858
MikeLoveRust
2021/01/26
5180
【Rust日报】2021-09-27 20W+行 Rust 构建的游戏居然这么好玩!
真的是一款很有趣的游戏。视频中还未展示很多游戏内容,欢迎大家来游玩。有能力的玩家欢迎提供建模模型,修改源码提供MOD。
MikeLoveRust
2021/09/29
7790
【Rust日报】2022-06-13 Crust of Rust: Send, Sync 和他们的实现者
<<Crust of Rust>> 系列的最新视频: Send, Sync 和他们的实现者.
MikeLoveRust
2022/11/28
2950
【Rust日报】2022-06-13 Crust of Rust: Send, Sync 和他们的实现者
【Rust日报】2021-02-15 使用 Tokio 直接构建 Actors
本文使用Tokio直接构建 Actors, 而不是使用任何现有的 actor 库.
MikeLoveRust
2021/03/15
4600
【Rust日报】2020-11-02 arc-swap 即将进入 1.0 稳定版本
arc-swap 类似 Arc, 但是对于读多写少的场景进行了优化. 对于读来说, 他几乎是 lock-free的(除了每次线程的第一次access). 因此他可以在读多写少场景下提供非常高的吞吐, 例如 配置更新等场景.
MikeLoveRust
2020/11/06
6480
【Rust日报】2020-11-02 arc-swap 即将进入 1.0 稳定版本
【Rust日报】2022-08-01 使用 Rust 开发你的第一个linux 内核模块
这是一个超详细的 linux 内核的 Rust 开发教程, 快来使用 Rust 来开发你的第一个 linux 内核模块把.
MikeLoveRust
2022/11/28
7470
【Rust日报】2021-08-16 如何写出高效的 Rust 代码
作者写了 <<如何写出非常慢的 Rust 代码>> 之后, 收到了很多反馈, 这些反馈提供了非常多的意见来改进代码, 让代码变的更高效. 作者给出了很多编写高效 Rust 代码的示例.
MikeLoveRust
2021/09/08
4540
【Rust日报】2022-06-27 Rust 中使用 wasm 来执行 OPA 策略
开放策略代理(Open Policy Agent, OPA)是一种开源的通用策略引擎,它支持跨整个环境中执行统一的上下文感知策略. OPA 是 云原生计算基金会(CNCF)的一个毕业项目。
MikeLoveRust
2022/11/28
3740
推荐阅读
相关推荐
【Rust日报】2021-06-07 是什么让 Rust 撩动了我
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文