0.1.0 |
|
---|
#28 in #origin
175KB
3K SLoC
origin-stdio 是一个基于 std
的类似实现,构建在 origin
上。
目前,它仅在Linux上运行,需要Rust nightly版本,缺乏完整的 std
兼容性,总体上处于实验阶段。但它支持线程等功能。
快速开始
在Linux上,使用Rust nightly版本,在空目录中运行以下命令
cargo init
cargo add origin_studio
cargo add compiler_builtins --features=mem
echo 'fn main() { println!("cargo:rustc-link-arg=-nostartfiles"); }' > build.rs
sed -i '1s/^/#![no_std]\n#![no_main]\norigin_studio::no_problem!();\n\n/' src/main.rs
cargo +nightly run --quiet
这将生成一个crate并打印 "Hello, world!"。
是的,你可能会说,我可以用仅前一个和最后一个命令做到这一点。但这个版本使用 origin
来启动和停止程序,使用 rustix
来进行打印。除此之外,它还使用 origin
来启动和停止线程,rustix-futex-sync
来进行线程的锁定,以及 rustix-dlmalloc
来进行内存分配,因此完全不使用 libc。
依赖关系
~8–17MB
~293K SLoC