在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
actix-web 1.0 正式版发布#actix actix-web 1.0对于0.7来说,是一次比较彻底的重构。涉及架构重新设计、抽象也由Actor进一步升级到了Service。对于代码层面而言,就是用Service替代了之前的Handler。 1.0的代码也完成遵循Rust惯例,组件化开发,相比于0.7版本的一大坨代码,清爽了很多。 重点说一下Service抽象,它是来自于领域驱动设计(DDD,Domain Derive Development)的概念。DDD要求开发者,构建软件的时候是以领域模型为基本单位。领域模型无关技术,具有高度的业务抽象性,它能够精确的描述领域中的知识体系。开发者需要学会如何让领域模型之间彼此之间建立关系,形成完整的领域架构。而Service就是专门为领域模型提供的外层服务层。服务是无状态的,它只拥有行为。 actix-web这样进行重构,可以方便开发者更好地进行分层设计。相比于之前的actor抽象,更加符合直觉。当然,如果你还喜欢之前的actor抽象,可以通过actix_web_actors组件获得支持。 actix-web组件的依赖层次应该是这样的: 「 (tokio && futures) -> actix-net/actix-rt -> acitx-net/其他子crate -> actix-web」。0.7的actix-web是基于actix实现的web抽象,1.0 的actix-web,是直接取消了actix的抽象,换成了基于actix-rt的Service抽象,提升了性能。但是你如果想用actix也可以,通过actix-web里支持的一个actor组件应该可以(目测,参考example中webscoket的示例),参考下图: dargo: 一个类似于cargo-edit的工具#cargo #tool 由国内社区DCjanus实现,和cargo-edit相比,特色在于:dargo基于查本地crates index,基本是瞬间可以完成整个workspace的升级。而cargo-edit之类的工具则是通过HTTP请求(直接访问crates.io)去检查最新版本。 所以使用dargo的时候,需要更新本地index才能保证获得最新版本。而更新本地index则比http速度要快很多,也有国内镜像可用。比较适合国情。 来自MIT数字货币计划Rust工作室的分享幻灯片 Day 1#MIT #DigitalCurrencyInitiative mft: 解析NTFS主文件的库#NTFS Sluice: 一个用于并发I/O编程的异步字节缓冲区和管道#IO #async sluice目前发布了 0.4 alpha 版本,基于Rust的async/await语法 在Rust中使用FlatBuffers#flatbuffers FlatBuffers是Google的序列化格式。它在读取和编写数据方面非常快:比JSON或XML快得多,并且通常比Google的其他格式(比如Protobuf)更快。目前有十三种编程语言支持它,包括Rust。
感兴趣的可以看看这篇教程,了解FlatBuffer以及如何在Rust中使用它。 构建无锁连续环形缓冲区#lockFree #ringBuffer 本文由Andrea Lattuada(苏黎世联邦理工学院博士生, ETH Zurich)和James Munns(来自Ferrous Systems)共同写作,介绍了如何设计和实现(包含了两个版本的实现,每人实现了一个版本)用于跨线程通信的高性能无锁环缓冲器。 From 日报小组 @Chaos 日报订阅地址: 独立日报订阅地址: 社区学习交流平台订阅: |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论