【Rust 日报】2022-04-10 适用于Rust的异步CQL驱动
scylla-rust-driver:适用于 Rust 的异步 CQL 驱动程序
这是 ScyllaDB 的客户端驱动程序,用纯 Rust 编写,使用 Tokio 实现完全异步 API。尽管针对 ScyllaDB 进行了优化,但也与 Apache Cassandra 兼容。
例子:
let uri = "127.0.0.1:9042";let session: Session = SessionBuilder::new().known_node(uri).build().await?;if let Some(rows) = session.query("SELECT a, b, c FROM ks.t", &[]).await?.rows {for row in rows.into_typed::<(i32, i32, String)>() {let (a, b, c) = row?;println!("a, b, c: {}, {}, {}", a, b, c);}
}
对此,团队还专门写了一篇文章《为什么我们要将数据库驱动程序移植到异步 Rust》,他们想把所有的数据库驱动底层都用 Rust。
文章链接:https://thenewstack.io/why-were-porting-our-database-drivers-to-async-rust/
文档:https://rust-driver.docs.scylladb.com/stable/index.html
GitHub:https://github.com/scylladb/scylla-rust-driver
felix:tui文件管理器
有类似 vim 的键映射。受到 vifm
的启发,同时关注:
简单快速
容易配置如何打开文件
GitHub:https://github.com/kyoheiu/felix
diskonaut:终端磁盘导航
工作原理:给定硬盘驱动器上的路径(也可以是根路径,例如 /),diskonaut 会扫描它并将其元数据索引到内存,以便浏览其内容(即使在仍在扫描时)。完成后,可以在子文件夹中导航,获取占用磁盘中文件的树状图表示,甚至可以删除文件或文件夹,diskonaut 将跟踪在此会话中释放了多少空间。
GitHub:https://github.com/imsnif/diskonaut
seize:为并发数据结构提供快速、高效且可靠的内存回收
并发数据结构面临着决定何时可以安全地释放内存的问题。尽管某个对象可能已在逻辑上被删除,但之前加载该对象的其他线程可能仍在访问它,因此立即释放该对象并不安全。多年来,已经设计了许多算法来解决这个问题。但是,大多数传统的内存回收方案在性能、效率和稳健性之间进行权衡。例如,基于 epoch 的回收快速且轻量级,但缺乏鲁棒性,因为停滞的线程可以阻止回收所有已停用的对象。Hazard pointers 是另一种流行的方案,可跟踪单个指针,使其高效且鲁棒,但通常要慢得多。
另一个通常不被考虑的问题是工作负载平衡。在大多数回收方案中,停用对象的线程是回收对象的线程。这会导致读取为主(read-dominated)的工作负载中的回收不平衡;当只有一小部分线程正在写入时,并行性会降低。这在使用由 Tokio 等异步运行时提供的 M:N 线程模型时尤其普遍。
Seize 基于 hyaline 回收方案,该方案使用引用计数来确定何时可以安全地释放内存。但是,引用计数器仅用于已停用的对象,从而避免了传统引用计数方案带来的高开销,其中每次内存访问都需要修改共享内存。性能通常与基于 epoch 的方案相当或优于基于 epoch 的方案,而内存效率与 Hazard pointers 相似。回收是自然平衡的,因为最后一次引用对象的线程是释放它的线程。还跟踪了 Epoch 以防止线程停滞,使回收真正无锁。
Seize 与所有支持单字原子操作(如 FAA 和 CAS)的现代硬件兼容。
文档:https://docs.rs/seize/latest/seize/
GitHub:https://github.com/ibraheemdev/seize
OffensiveNotion:C2平台
特征包括:
【Rust 日报】2022-04-10 适用于Rust的异步CQL驱动相关推荐
- 【Rust日报】 2019-06-16:用 Rust, Haskell, C++, Python, Scala 和 OCaml 实现同一个工程的比较...
tx-rs - 一个提供 wrtie ahead 的原子交易库 刚出来,仅供了解,这里的"交易"是指业务的原子性,常见于数据库中.与区块链或密码学中的交易,是不同的概念.类似于 S ...
- 【Rust 日报】2022-01-09 又一个Rust中文教程《Rust语言圣经》
12个Rust的Tips 使用 Cow<str> 作为返回类型 使用 Crossbeam channels 取代标准库 使用 Scopeguard 实现类似 Golang 的延迟运算 使用 ...
- 【Rust日报】2021-12-14 Lapce: 用Rust编写的闪电般快速且功能强大的代码编辑器
Lapce: 用Rust编写的闪电般快速且功能强大的代码编辑器 Lightning-fast and Powerful Code Editor written in Rust Lapce完全是用Rus ...
- 【Rust日报】2020-01-27 QIP:Rust中的量子计算模拟
QIP:Rust中的量子计算模拟 量子计算库利用图形构建来构建有效的量子电路仿真.对于借口模型的量子计算,Rust是一种很棒的语言,因为借位检查器与无克隆定理非常相似. 请参阅Github仓库的exa ...
- 【Rust 日报】2022-10-23 tachyonix:一个高性能异步计算框架
tachyonix:异步多生产单消费有界通道 这个库是 Asynchronix 的一个分支,它持续努力地构建用于系统仿真的高性能异步计算框架. 这是一个简洁的异步通道,以快速著称,但也不会在正确性和质 ...
- 人工智能 | ShowMeAI资讯日报 #2022.06.10
ShowMeAI日报系列全新升级!覆盖AI人工智能 工具&框架 | 项目&代码 | 博文&分享 | 数据&资源 | 研究&论文 等方向.点击查看 历史文章列表, ...
- leetcode 2022.04.10 招商银行专场竞赛 D.商店促销活动(dp)
题目 竞赛:2022招商银行专场竞赛 D题:商店促销活动 n(n<=1e5)件商品, 第i件商品,要么去商店A买,花费ai(ai<=1e4),要么去商店B买,花费bi(bi<=1e4 ...
- 【Rust日报】2020-11-03 《Rust日报》总第1000期
今日头版 <Rust日报>第1000期,感谢有你 两年半的时间,我们一期期走来,到了今天发行的第1000期.回想我第一次看<Rust日报>,还是在Rust 2018刚推出的时候 ...
- 2022.04.10-高宝琪毕设阶段性汇报
第11次汇报 (2022.04.10) 经过了几天的努力, 终于跑通了最后的"分析数字化后的心电数据"这一部分; 采用了Flask框架将一个Keras深度学习模型部署到了Web端, ...
最新文章
- 03-2 BGP专有命令--BGP命令与配置手册
- Cordic算法——圆周系统之向量模式
- 学python心得体会500字-Python初学心得体会
- python字符串title函数_python字符串内建函数-capitalize、title、upper
- Swift快速入门(一)第一个Swift程序
- 高通全系列手机处理器深度解析 (升级选手机必备)附参数对比表
- bert关键词提取_BERT可以上几年级了?Seq2Seq“硬刚”小学数学应用题
- yum下载rpm包、源码包安装
- Cris 的 Scala 笔记整理(八):面向对象中级-封装
- NHL明星与美国冰球协会联手发起NFT拍卖
- Struts2基础总结
- ecshop shopex_json.php,Shopex到ECShop的转换教程
- unity物体移动的几种常用方式
- matlab imrotated,图像旋转由Matlab无需使用imrotate
- php页面强制横屏,Css实现手机端页面强制横屏(仅适用与一屏页面)
- 安装office2013报安装程序找不到OneNote.zh-cn、安装源不存在
- java ship_用Java对象来解答世界悖论难题“忒修斯之船”
- ImageIO工具类简介及应用
- 跨境电商平台运营知识:亚马逊日常运营技巧
- 【干货】OJ上各种术语
热门文章
- 【Rust日报】 2019-06-16:用 Rust, Haskell, C++, Python, Scala 和 OCaml 实现同一个工程的比较...