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 日报小组 长琴
社区学习交流平台订阅:
Rustcc 论坛:支持 rss
微信公众号:Rust 语言中文社区