了解如何在项目中使用关键。
在GitHub上的项目存储库中关注README。
阅读API文档
在最近在伦敦举行的Rust Nation 2023会议上观看介绍性演讲。
您也可以在我们的Zulip频道上加入友好的对话。
请注意,关键是实验性的,目前正在积极开发中(可能还没有准备好用于生产应用程序)。但是,主分支应该始终运行良好,我们将尽力使示例和文档保持最新。我们确实认为API现在已经解决了,所以玩游戏! :-)
基本的架构概念是将纯计算任务与引起副作用的任务进行严格分离。这类似于榆树的工作方式。
在上图中,内部“核心”被编译并链接到每个平台上的外部“ shell”,作为库:
实际上,由于WebAssembly(WASM)是汇编目标之一,因此由于WASM运行时环境的沙盒性质,核心必须保持无副作用。
因此,核心是完全孤立的,并且可以防止软件供应链攻击,因为它无法访问任何外部API。它所能做的就是执行纯计算并保持内部状态。
遵循ELM体系结构,核心定义了应用程序中的关键组件类型:
Event - 描述核心可以处理的事件的enumModel - 描述应用程序的内部状态ViewModel - 表示应向用户显示的信息前两个由ELM,REDUX或其他事件采购体系结构熟悉的update功能将其捆绑在一起,该架构当前具有此类型的签名:
fn update (
& self ,
event : Event ,
model : & mut Model ,
capabilities : & Capabilities ,
) update功能的作业是处理Event ,相应地更新模型,并可能使用功能请求某些副作用。
封闭平台的本机“ shell”是使用适合该平台的语言编写的,并充当执行所有非pure任务的运行时环境。从核心的角度来看,外壳是核心运行的平台。
遵循ELM体系结构,与核心的接口是基于消息的。这意味着除纯计算外,核心无法执行其他任何操作。要执行创建副作用的任何任务(例如HTTP调用或随机数生成),核心必须从外壳请求它。
核心具有功能的概念 - 可重复使用的常见副作用的接口 - 支持火灾和遗传,请求/响应和流语义。
唯一的内置功能是Render 。但是,该存储库在成熟的各个阶段包含一些功能,如果您愿意,您可以轻松编写以下功能:
Render (要求UI渲染ViewModel) - 源,内置的crux_core ,仅请求Http (基于冲浪API的完整HTTP实现) - 来源,板条箱,请求/响应KeyValue (基本键值商店API) - 源,板条箱,请求/响应Time (获取当前时间,持续时间通知,立即通知) - 来源,板条箱,请求/响应Platform (获取当前平台) - 来源,板条箱,请求/响应SSE (基本服务器范围事件) - 源,请求/流媒体PubSub (带流媒体的酒吧子) - 来源,请求/响应/流媒体Timer (计时器开始,结束,取消) - 源,请求/响应/流媒体Delay - 书中教程的一部分Red Badger是由Blue Chips和Global Brands信任的数字产品咨询公司。我们的产品设计和技术血统使我们能够制作客户所需的高影响力数字产品。我们使用现代工程方法来实现可持续变化。并嵌入数字功能来为连续创新提供动力。
Zulip是一款开源的现代团队聊天应用程序,旨在保持现场直播和异步对话。
Zulip赞助商Crux通过提供我们的Zulip服务器 - 谢谢Zulip!