< 返回版块

长琴 发表于 2023-05-29 16:50

Tags:rust,日报,tcp-chat,ezlua,failsafe-rs,r2,disintegrate

tcp-chat:构建在TCP上的简单快速轻量的聊天工具

tcp-chat通过TCP进行通信,该项目的目的是了解并行性和底层网络通信。

前端工具:Solid、Tauri、Vite

后端工具:Rust、Tokio、Serde

GitHub: https://github.com/gatomod/tcp-chat

ezlua:Rust的Lua绑定

功能包括:

  • 序列化 (serde) 支持
  • 异步函数绑定支持
  • 人性化的函数和用户数据方法绑定
  • 人性化的堆栈值操作,无需关注堆栈细节
  • 高效:无辅助堆栈,支持引用类型转换
  • 内置绑定到最常用的 rust std 函数和类型
  • 多线程支持

GitHub: https://github.com/metaworm/ezlua

failsafe-rs:错误处理

轻量的错误处理库。使用示例:

#[derive(Clone, Debug, PartialEq)]
pub struct Person {
    name: Option<String>,
    pub url: String,
}

# 必须实现 Runnable
impl Runnable for Person {
    fn run(&mut self) -> Result<(), Box<dyn Any>> {
        println!("I am a person, getting my name!");
        let name_response: Result<String, SomeNetworkError> = remote_request_that_might_fail(self.url);
        match name_response {
            Ok(name) => {
                println!("Got a name! {}", name);
                self.name = Some(name);
            }
            Err(_) => return Err(
                Box::new(
                    PersonError::as_any(&PersonError::NameFindingError)
                )
            )
        }
        Ok(())
    }

    fn update(&mut self, other: &Box<dyn FallbackAble>) {
        let n: &Person = other.as_any().downcast_ref().unwrap();
        self.url = n.url;
    }
}

GitHub: https://github.com/inventhq/failsafe-rs

r2:RISC-V模拟器

本地启动:

$ cargo run -p app -- -i fixtures/linux.bin -d fixtures/default.dtb

WASI:

$ cargo build -p wasi --target wasm32-wasi --release
$ wasmtime ./target/wasm32-wasi/release/wasi.wasm

Wasm:

$ cd wasm
$ cargo build --target wasm32-unknown-unknown --release
$ wasm-opt --asyncify --pass-arg=asyncify-imports@env.keydown ../target/wasm32-unknown-unknown/release/wasm.wasm -o out.wasm
$ npx serve

GitHub: https://github.com/bokuweb/r2

disintegrate

Disintegrate 提供了一种从事件流构建域对象的替代方法。在支持传统聚合的同时,Disintegrate引入了一种新方法,允许在建模业务规则时具有更大的灵活性和适应性。通过利用事件流作为基础,Disintegrate使开发人员能够构建模型来捕获业务事件的本质,而无需在聚合中对同一事件进行多版本。这减少了重复和复杂性,从而产生更清晰和更易于维护的代码。

GitHub: https://github.com/disintegrate-es/disintegrate


From 日报小组 长琴

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页