文字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

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


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但沒人理

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