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 2021年7月6日

#26 in #gear

Download history 450/week @ 2024-04-26 617/week @ 2024-05-03 524/week @ 2024-05-10 416/week @ 2024-05-17 336/week @ 2024-05-24 221/week @ 2024-05-31 222/week @ 2024-06-07 260/week @ 2024-06-14 245/week @ 2024-06-21 444/week @ 2024-06-28 435/week @ 2024-07-05 456/week @ 2024-07-12 330/week @ 2024-07-19 559/week @ 2024-07-26 377/week @ 2024-08-02 513/week @ 2024-08-09

1,854 个月下载量
用于 16 个crate(通过 gstd

GPL-3.0 许可证

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