了解如何在項目中使用關鍵。
在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!