前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Rust日报】 2019-06-05:actix-web 1.0 正式版发布

【Rust日报】 2019-06-05:actix-web 1.0 正式版发布

作者头像
MikeLoveRust
发布2019-07-09 13:19:06
7160
发布2019-07-09 13:19:06
举报

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的示例),参考下图:

Read More


dargo: 一个类似于cargo-edit的工具

#cargo #tool

由国内社区DCjanus实现,和cargo-edit相比,特色在于:dargo基于查本地crates index,基本是瞬间可以完成整个workspace的升级。而cargo-edit之类的工具则是通过HTTP请求(直接访问crates.io)去检查最新版本。

所以使用dargo的时候,需要更新本地index才能保证获得最新版本。而更新本地index则比http速度要快很多,也有国内镜像可用。比较适合国情。

dargo


来自MIT数字货币计划Rust工作室的分享幻灯片 Day 1

#MIT #DigitalCurrencyInitiative

  • Read More
  • 官网

mft: 解析NTFS主文件的库

#NTFS

mft


Sluice: 一个用于并发I/O编程的异步字节缓冲区和管道

#IO #async

sluice目前发布了 0.4 alpha 版本,基于Rust的async/await语法

Sluice


在Rust中使用FlatBuffers

#flatbuffers

FlatBuffers是Google的序列化格式。它在读取和编写数据方面非常快:比JSON或XML快得多,并且通常比Google的其他格式(比如Protobuf)更快。目前有十三种编程语言支持它,包括Rust。

FB在计算时间上占优势,而PB则在内存空间上占优(相比FB,这也正是它计算时间比较慢的原因)。Google宣称FB适合游戏开发是有道理的,如果在乎计算时间它也适用于后台开发。protobuf更适用于分布式计算领域。 参考来源

感兴趣的可以看看这篇教程,了解FlatBuffer以及如何在Rust中使用它。

Read More


构建无锁连续环形缓冲区

#lockFree #ringBuffer

本文由Andrea Lattuada(苏黎世联邦理工学院博士生, ETH Zurich)和James Munns(来自Ferrous Systems)共同写作,介绍了如何设计和实现(包含了两个版本的实现,每人实现了一个版本)用于跨线程通信的高性能无锁环缓冲器。

  • Read More
  • Andrea实现的spsc-bip-buffer
  • James实现的bbqueue
  • Reddit 讨论
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-05,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • actix-web 1.0 正式版发布
  • dargo: 一个类似于cargo-edit的工具
  • 来自MIT数字货币计划Rust工作室的分享幻灯片 Day 1
  • mft: 解析NTFS主文件的库
  • Sluice: 一个用于并发I/O编程的异步字节缓冲区和管道
  • 在Rust中使用FlatBuffers
  • 构建无锁连续环形缓冲区
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档