【Rust日报】 2019-02-01

本文转载自:https://rust.cc/article?id=830ec584-deb0-4c1a-b368-f8bb6af01d02

log-derive: 方便加log的宏工具

#log

#[logfn(Err = "Error", fmt = "Failed Sending Packet: {:?}")]
 fn send_hi(addr: SocketAddr) -> Result<(), io::Error> {
     let mut stream = TcpStream::connect(addr)?;
     stream.write(b"Hi!")?;
     Ok( () )
 }

可以自动生成log输出, 记录函数调用,可方便调试代码。

log-derive


wayland-rs: 发布0.22版本

#wayland

Wayland是一个协议定义了如何与内核通讯、如何与Client通讯等,Linux桌面X Client/X server的替代者

wayland-rs


「系列文章」WebAssembly算不上一个栈虚拟机 Part I

#wasm

本文作者指出了当前WebAssembly设计的缺陷,表面是一个栈虚拟机,但实际上在编译层面是一个性能不算好的(liveless,对变量没有活跃期分析,而导致重复计算)寄存器式虚拟机,只是在最后才表现的像一个栈虚拟机。这个缺陷是来自于之前的设计规范是基于进一步简化asm.js而导致的历史原因。所以现在出现wasmtime这样的流式WebAssembly编译器来解决这种问题。

作者在后续还会写几篇关于WebAssembly问题的文章。

Read More


GitHub Actions: 自动format代码格式

#format

这是一个GitHub Action,支持对多种语言的软件的代码进行自动格式化。支持Rustfmt和Clippy。

actions


「讨论」你认为Rust代码组织有哪些最佳实践或陷阱?

#rust #code_organize

我个人是一个代码组织的实践就是:组件化。这也是Rust所倡导的。在单个组件之内,进行模块化,分清层次结构。

讨论中,也有喜欢扁平化的结构,这样方便测试,直到找到足够的理由再分拆单个组件包。

大家有什么分享的?

Reddit 讨论贴


「讨论」读Rust代码比写Rust代码更容易

#rust

我也同意,Rust的代码可读性很好,读代码比写代码更容易。并且还可以总结出一些高效阅读代码的技巧,这完全得益于Rust的高度一致性。

讨论中提到了Cpp、Python、JS等其他语言的可读性探讨。这种争论应该还算可以接受,感兴趣可以关注下。

Reddit 讨论贴


FFI:在Node和Rust之间交换数据

#node #ffi

本文探讨了如何在Node和Rust之间传递数组、结构体等数据,以及如何使用回调。对于学习FFI也是一个好的案例。

Read More


用Rust实现Haskell中的group_by

#haskell

slice-group-by


更短的UUID实现

#uuid

shorter-uuid-rs


rust-numext: 扩展Rust的内建数字类型

#number

包含了大数和散列操作。

rust-numext


日报订阅地址:

  • Telgram Channel
  • 阿里云语雀订阅
  • Stemmit
  • Rust.cc论坛
  • GitHub

欢迎通过GitHub issues投稿。

你可能感兴趣的:(【Rust日报】 2019-02-01)