CPP工程师的Rust迁移之路
regex 1.3的改动
regex1.3允许禁用Unicode等影响性能的特性,这可以减少超过1MB的二进制文件大小,将编译时间缩短一半,并将依赖关系树减少到一个包。
我们可以从一个issue#613中了解这些改动的原因:
这些变化的另一个动机是允许正则表达式的用户缩小其依赖树,如果他们希望交换运行时性能。 虽然这可能听起来不像是一个很好的交换,但是存在许多实际上不需要高性能正则表达匹配的情况。 例如,如果使用正则表达式来过滤一小组微小的ASCII字符串,那么禁用所有正则表达式的crate功能是完全合理的。 最终结果是它将大大缩小二进制大小,缩短编译时间并将正则表达式的依赖树缩小到单个包(正则表达式语法)。
发起这个PR的是BurntSushi大神。
retest 一个基于 fixture 的rust测试框架
我们可以通过两组测试代码看一下这个框架是如何工作的
use rstest::rstest;
pub fn fixture() -> u32 { 42 }
#[rstest]
fn should_success(fixture: u32) {
assert_eq!(fixture, 42);
}
#[rstest]
fn should_fail(fixture: u32) {
assert_ne!(fixture, 42);
}
# use rstest::rstest_parametrize;
#[rstest_parametrize(input, expected,
case(0, 0),
case(1, 1),
case(2, 1),
case(3, 2),
case(4, 3)
)]
fn fibonacci_test(input: u32, expected: u32) {
assert_eq!(expected, fibonacci(input))
}
running 5 tests
test fibonacci_test::case_1 ... ok
test fibonacci_test::case_2 ... ok
test fibonacci_test::case_3 ... ok
test fibonacci_test::case_4 ... ok
test fibonacci_test::case_5 ... ok
test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
将现有的WebAssembly应用程序转换为分布式程序
看过 rustwasm 文档的小伙伴应该都看到过 conway's game of life(康威生命游戏)的实现过程,有很多文章介绍了如何将 WebAssembly 应用运行在分布式虚拟机/智能合约平台Wavelet上运行,本文介绍如何改造一个现有的 WebAssembly 应用运行在智能合约平台Wavelet上。康威生命游戏小编也做过,周末按照这个教程改造试试。
From 日报小组 格朗
日报订阅地址:
独立日报订阅地址:
社区学习交流平台订阅: