sdk-rust (astrid-runtime/sdk-rust)
Searching Database…
Что это такое?
Это Rust SDK для создания „капсул“ Astrid — изолированных WASM-модулей, которые действуют как user-space процессы в модели Astrid OS, с безопасным типизированным доступом к сервисам ядра вроде файловой системы, IPC, сети, хранилища, подтверждений и планирования.
astrid-sdk — это библиотека или генератор кода?
И то и другое: astrid-sdk — безопасная Rust-библиотека, зеркалящая структуру модулей std (fs, net, process, env, time, log) плюс специфичные для Astrid модули, а astrid-sdk-macros даёт proc-макрос #[capsule], который генерирует весь WASM ABI boilerplate за вас.
Как собрать капсулу с этим SDK?
Подключите astrid-sdk (и serde) в своём crate, пометьте реализацию макросом #[capsule], затем скомпилируйте crate под таргет wasm32-wasip2.
Нужно ли что-то помимо самого astrid-sdk?
Авторам капсул достаточно добавить astrid-sdk и serde как зависимости — SDK сам берёт на себя JSON-сериализацию через границу WASM, генерацию схем инструментов и маршрутизацию вызовов.
Стоит ли вызывать astrid-sys напрямую вместо astrid-sdk?
Нет — astrid-sys это лишь сырая таблица FFI-сисколлов WASM-to-host, и в README прямо не рекомендуется использовать её напрямую; используйте безопасные обёртки из astrid-sdk.
Что такое капсула?
Капсула — изолированный WASM-модуль, который ведёт себя как user-space процесс в модели Astrid OS, получая типизированный доступ к сервисам ядра вместо сырых сисколлов.
С какими сервисами ядра может взаимодействовать капсула?
Через выделенные модули SDK ей доступны IPC, key-value хранилище, HTTP, хуки, cron-планирование, uplink, идентификация, подтверждения и общие сервисы среды выполнения, плюс модули в духе std: fs, net, process, env, time и log.
От чего избавляет макрос #[capsule]?
Он автоматически генерирует экспорты WASM ABI с extern "C", JSON-сериализацию через границу хоста, генерацию схем инструментов и маршрутизацию вызовов, так что astrid-sys напрямую трогать не придётся.
What are similar projects?
just-bash, sdk-js, capsule-fs, moejs, WasmEdge, deno, wasmer, linera-protocol
Which topics is it in?
ffi, sandboxing, filesystem, key-value, cron, scheduler, runtime, webassembly, operating-system, plugin-system, wasm, http