小言_互联网的博客

【Rust日报】2019-09-06:文字RPG

330人阅读  评论(0)

文字RPG

作者之前寫過 MUDdy 像MUD的純文字互動遊戲,但只是單機的 Read more

最近也用Rust寫了 RCRPG

Read more

這是一個 Rosetta Code 裡的題目,Rosetta Code是一個把基礎的程式問題用各種語言實作一遍的網站,大家有興趣也可以來幫忙Rust的實作更完整。

Read more

fastwfc-rs: libfastwfc 的 Rust 綁定庫

libfastwfc 是一個學術用波函數折疊的庫

目前還非常的小 codebase 也才400行 應該是可以直接用Rust快速重寫的庫

Read more

Iced 與渲染無關的GUI庫,專注於簡單與類型安全。參考Elm

Read more

Texture Synthesis 材質合成補完的庫 來自 embark.games

這個團隊使用rust來開發各種功能,且用UE4開發他們的場景Demo, 非常厲害的團隊。

Read more github youtube

Fuzzcheck 針對Rust功能的覆蓋率提升工具

給定函數 Test:(T) - > Bool,它會試圖找到一個回傳false或導致崩潰的T類型的值。

比如你有個長的很醜的函數長這樣

extern crate my_library;

extern crate fuzzcheck;
use fuzzcheck::fuzzer;

extern crate fuzzcheck_input;
use fuzzcheck_input::integer::IntegerGenerator;
use fuzzcheck_input::vector::VectorGenerator;

fn test(input: &Vec<u8>) -> bool {
    // property test goes here
    if 
        input.len() > 7 &&
        input[0] == 0 &&
        input[1] == 167 &&
        input[2] == 200 &&
        input[3] == 103 &&
        input[4] == 56 &&
        input[5] == 78 &&
        input[6] == 2 &&
        input[7] == 254
    {
        false
    }
    else {
        true
    }
}

fn main() {
    let u8_gen = IntegerGenerator::<u8>::new();
    let vec_gen = VectorGenerator::new(u8_gen);
    
    let _ = fuzzer::launch(test, vec_gen);
}

然後去給他跑,他就跑出一個

NEW 180086 score: 493 pool: 48 exec/s: 132713 cplx: 79792

NEW 表示將新輸入添加到有興趣的輸入池中 180086 是到目前為止執行的迭代次數 得分:493 是池中所有輸入引起的總代碼覆蓋率的度量 pool:48 是池中的輸入數 exec / s:132713 是每秒執行的平均迭代次數 cplx:79792 是池中輸入的平均複雜度

最後他會找到return false的條件

================ TEST FAILED ================
188241  score: 495      pool: 51        exec/s: 132659  cplx: 81373
Saving at "./fuzz/fuzz_targets/target1/artifacts/1c10daa13e9b1721.json"

而這個1c10daa13e9b1721.json檔裡面會長這樣 [0, 167, 200, 103, 56, 78, 2, 254]

跟我們的程式碼條件一樣

input.len() > 7 &&
input[0] == 0 &&
input[1] == 167 &&
input[2] == 200 &&
input[3] == 103 &&
input[4] == 56 &&
input[5] == 78 &&
input[6] == 2 &&
input[7] == 254

Read more

rust 中哪個 protobuf庫 比較好用?

我有大量(1000+)個protobuf類型分佈在數百個不同的.proto文件中。

不知道有什麼庫可以一次幫這所有的 .proto 文件全部轉成 rust 宣告?

目前已經試過 prost, rust-protobuf 但感覺差強人意

prost的問題是沒辨法處理大量複雜相依的 .proto

rust-protobuf可以處理大量複雜相依的 .proto,但他發現一個問題發了一個PR但沒人理

他覺得這些專案的維護者是不是不想讓他們的庫愈來愈好?

Read more


From 日报小组 @Damody

日报订阅地址:

独立日报订阅地址:

  • Telgram Channel

  • 阿里云语雀订阅

  • Steemit

  • GitHub

社区学习交流平台订阅:

  • Rust.cc论坛: 支持rss

  • Rust Force: 支持rss

  • 微信公众号:Rust语言学习交流


转载:https://blog.csdn.net/u012067469/article/details/100589204
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场