【Rust日报】2019-09-04

in rust •  5 years ago 

CPP工程师的Rust迁移之路

#rust #cpp

Read More

regex 1.3的改动

#rust #crate

regex1.3允许禁用Unicode等影响性能的特性,这可以减少超过1MB的二进制文件大小,将编译时间缩短一半,并将依赖关系树减少到一个包。

我们可以从一个issue#613中了解这些改动的原因:

这些变化的另一个动机是允许正则表达式的用户缩小其依赖树,如果他们希望交换运行时性能。 虽然这可能听起来不像是一个很好的交换,但是存在许多实际上不需要高性能正则表达匹配的情况。 例如,如果使用正则表达式来过滤一小组微小的ASCII字符串,那么禁用所有正则表达式的crate功能是完全合理的。 最终结果是它将大大缩小二进制大小,缩短编译时间并将正则表达式的依赖树缩小到单个包(正则表达式语法)。

发起这个PR的是BurntSushi大神。

Repo

retest 一个基于 fixture 的rust测试框架

#test #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

Read More

将现有的WebAssembly应用程序转换为分布式程序

#rust #wasm

看过 rustwasm 文档的小伙伴应该都看到过 conway's game of life(康威生命游戏)的实现过程,有很多文章介绍了如何将 WebAssembly 应用运行在分布式虚拟机/智能合约平台Wavelet上运行,本文介绍如何改造一个现有的 WebAssembly 应用运行在智能合约平台Wavelet上。康威生命游戏小编也做过,周末按照这个教程改造试试。

Read More


From 日报小组 格朗

日报订阅地址:

独立日报订阅地址:

社区学习交流平台订阅:

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!