如何修复和预防 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语言中文社区