Rust Node
Rust Node 直接实现 Runtime 的 Node 生命周期。
use muxiva_core::{Node, NodeContext};
use muxiva_core::PortName;
use muxiva_types::Frame;
pub struct MyNode;
impl Node for MyNode {
fn on_process(
&mut self,
input: Option<Frame>,
context: &mut NodeContext,
) -> muxiva_types::Result<()> {
if let Some(frame) = input {
context.emit(PortName::new("text_out").expect("valid Port"), frame)?;
// context.emit_signal(signal)?; // 相邻图控制
// context.publish_notification(event)?; // Runtime 进程内 NotificationBus
}
Ok(()) // 回调状态,不承担消息传输
}
}
Source Node 可调用 context.schedule_next_tick(delay) 保持活跃;不调用则完成
Source,从而兼容既有的一次性语义。
内置 Rust Factory 会编译进可信 Registry。第三方二进制 Package 必须跨越 Muxiva 稳定 C ABI,不能依赖不稳定的 Rust 动态 ABI。
当前 Studio 边界
Studio 可以生成并保存 Rust 项目源码与 Manifest,但项目 Build Host 尚未启用。 生产级 Host 必须生成锁定依赖的 Crate、执行编译、暴露稳定 ABI 入口、校验 ABI 与 Manifest 身份,并在不加载无效代码的前提下报告工具链或编译错误。