26个版本 (14个稳定版)
新 1.5.0 | 2024年8月12日 |
---|---|
1.4.2 | 2024年7月2日 |
1.4.1 | 2024年5月13日 |
1.1.1 | 2024年2月12日 |
0.0.1 |
|
#26 in #gear
1,854 个月下载量
用于 16 个crate(通过 gstd)
140KB
2K SLoC
gcore
Gear程序的核心库。
特性
codec
- 允许您获取实际发生的错误,而不是 ExtError::Some
。
lib.rs
:
适用于Gear程序的轻量级库。
当编写Gear程序时,应将该库用作标准库。与 gstd
crate相比,此库提供了更底层的原语,允许您开发成本更低的程序。如果您准备好编写更多代码,但希望获得更高效的Wasm,请选择它。
请注意,您需要定义panic和内存不足处理程序,因为该crate默认不提供。
示例
#![no_std]
#![feature(alloc_error_handler)]
extern crate galloc;
use gcore::msg;
#[no_mangle]
extern "C" fn handle() {
let mut bytes = [0; 64];
msg::read(&mut bytes).expect("Unable to read");
if let Ok(payload) = core::str::from_utf8(&bytes) {
if payload == "PING" {
msg::reply(b"PONG", 0).expect("Unable to reply");
}
}
}
#[alloc_error_handler]
pub fn oom(_: core::alloc::Layout) -> ! {
core::arch::wasm32::unreachable()
}
#[panic_handler]
fn panic(_: &core::panic::PanicInfo) -> ! {
core::arch::wasm32::unreachable()
}
依赖关系
~4MB
~86K SLoC