Rust 1.34 稳定版发布

#stable_rust


​​​$ rustup update stable​


该稳定版本包括如下变动:


  • 引入了cargo registries,此功能允许你指定crates.io之外发布的crate,甚至一些闭源的crate。
  • 文档测试支持​​?​​语法
  • 过程宏中的自定义属性​​#[attr()]​​,​​#[attr[]]​​, 和​​#[attr{}]​​ 可以接受token流。之前的unrestricted_attribute_tokens Features。
  • TryFrom和TryInto稳定
  • 弃用​​fn before_exec​​而使用​​unsafe fn pre_exec​
  • 稳定了一些标准库API,比如Instant::checked_add/ Instant::checked_sub等
  • 支持​​extern crate self as foo;​​将当前crate的root导出为指定别名
  • 支持新的target:​​riscv64imac-unknown-none-elf​​ 和 ​​riscv64gc-unknown-none-elf​​,以及​​powerpc64-unknown-freebsd​
  • 可以使用​​-C linker-plugin-lto​​启用链接器插件LTO优化, 使得rustc将Rust代码编译为LLVM bitcode,从而允许LLVM跨C / C ++ FFI边界执行LTO优化


更多内容请看官方release notes。


​https://blog.rust-lang.org/2019/04/11/Rust-1.34.0.html​

​https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1340-2019-04-11​

​https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=14757b61cc384f085a63efea3002b96d​




如何在Rust测试中Mock时间

#mock


​https://blog.iany.me/2019/03/how-to-mock-time-in-rust-tests-and-cargo-gotchas-we-met​

​https://github.com/doitian/rust-mock-time-demo​




「系列文章」JavaScript解析和求值

#javascript #parser


该文作者在之前分享了如何使用Rust实现一个基于状态机的高性能的JS词法分析器。这之后,又开始写系列文章分享他的心得。


​https://medium.com/@retep007/javascript-lexing-for-high-performance-f9a800ec930d​

​https://medium.com/@retep007/javascript-evaluator-part-2-parser-and-basic-evaluator-d306ff1aec83​

​https://github.com/retep007/javascript-es9-parser​




Atom 1.36选用了ripgrep

#ripgrep #atom


使用Ripgrep极大地提升了Atom项目内查找的性能,在文件量很大的情况下尤为明显。不过需要专门通过设置​​使用Rip Grep​​选项手动打开。


​https://blog.atom.io/2019/04/09/atom-1-36.html​




orange_slice: 用于研究的确定性的虚拟机管理程序

#kernel #hypervisor


​https://github.com/gamozolabs/orange_slice​




Crossterm 0.9 发布

#crossterm #terminal


crossterm用于跨平台的终端操作,可以与Tui-rs集成使用。


​https://github.com/TimonPost/crossterm​

​http://atcentra.com/crossterm/​




「讨论」如何解读StackOverflow上面Rust连续四年成为最受开发者喜欢语言的这一事实?

#reddit #stackoverflow


该贴作者对这个结果做出了以下可能的解释:


  • 跨越了学习曲线的人真的都喜欢Rust
  • 开发人员喜欢新的技术,即使他们还没了解Rust,但他们认为应该重视它。(这个角度来看的话,排名第二的Python看上去就比较诡异)
  • Rust社区是一个非常友好的社区
  • Rust社区营销的比较好
  • 有许多C++开发者因为Rust的安全性而选择它





到底是什么原因呢?这个话题下评论区讨论比较激烈。

(我喜欢Rust,是因为Rust这门语言恰好符合我对理想编程语言的某些预期。你是什么原因喜欢Rust呢?)


偶尔也看到一条额外信息:Apple也在使用Rust构建分布式文件系统,据说在在西雅图举行过一次小型演讲,试图招募相关人才,在网上还找不到相关信息。


​https://www.reddit.com/r/rust/comments/bc46lc/understanding_rusts_popularity_on_stack_overflow/​




使用Sonr构建pub/sub服务器

#sonr #pub_sub #mio


sonr建立在mio之上的网络库,相比于Tokio来说,更加轻量。


​https://hagsteel.com/posts/building-a-pub-sub-with-sonr-part-1/​

​https://github.com/hagsteel/sonr​

​https://github.com/hagsteel/pubsub​

​https://hagsteel.com/posts/introduction-to-sonr/​




chit: 可在终端查询crate信息的工具

#crate #cli


$ cargo install chit

​$ chit serde​​​​​

​https://github.com/peterheesterman/chit​




Rust编写的的ip-api命令行界面

#ip_api


ip-api是一个免费(非商用)的第三方IP地理位置API服务。


​http://ip-api.com/​

​https://github.com/Gymmasssorla/ip-api-cli​




test_double: 可以在测试中将一种类型替换为另一种类型的库

#test


​https://github.com/pcsm/test_double​




wasmer: 可执行wasm二进制文件的Python库

#python #wasm


​https://github.com/wasmerio/python-ext-wasm​




sic: 顺序导入链,一个HTML/CSS脚本注入工具

#css_injection #security #html_injection


​https://github.com/d0nutptr/sic​

​https://medium.com/@d0nut/better-exfiltration-via-html-injection-31c72a2dae8b​



本文原文由 Markdown 写成