プロジェクトでCruxの使用方法を学びます。
GitHubのプロジェクトのリポジトリのREADMEをフォローしてください。
APIドキュメントをお読みください
ロンドンで開催された最近のRust Nation 2023 Conferenceで入門講演をご覧ください。
また、Zulipチャンネルでフレンドリーな会話に参加することもできます。
Cruxは実験的であり、現在はアクティブな開発中です(おそらく生産アプリでまだ使用する準備ができていない)。ただし、マスターブランチは常にうまく機能している必要があります。例とドキュメントを最新の状態に保つようにします。 APIが解決したと思いますので、プレイがあります! :-)
基本的な建築概念は、副作用を引き起こすタスクからの純粋な計算タスクの厳格な分離です。これは、ELMの仕組みに似ています。
上記の図では、内側の「コア」がコンパイルされ、各プラットフォームの外側の「シェル」にリンクされています。
実際、WebAssembly(WASM)はコンパイルターゲットの1つであるため、WASMランタイム環境のサンドボックスされた性質のため、コアは副作用を維持する必要があります。
そのため、コアは完全に分離されており、外部APIにアクセスできないため、ソフトウェアの供給チェーン攻撃に対して安全です。できることは、純粋な計算を実行し、内部状態を維持することです。
ELMアーキテクチャに続いて、コアはアプリケーション内の主要なコンポーネントタイプを定義します。
Event - コアが処理できるイベントを説明するenumModel - アプリケーションの内部状態について説明しますViewModel - ユーザーに表示する必要がある情報を表します前者の2つは、ELM、Redux、またはその他のイベントソーシングアーキテクチャの馴染みのあるupdate機能によって結び付けられています。現在、このタイプの署名があります。
fn update (
& self ,
event : Event ,
model : & mut Model ,
capabilities : & Capabilities ,
) update関数のジョブは、 Eventを処理し、それに応じてモデルを更新し、機能を使用していくつかの副作用を要求する可能性があります。
囲まれたプラットフォームネイティブ「シェル」は、プラットフォームに適した言語を使用して書かれており、すべての非ピアタスクが実行されるランタイム環境として機能します。コアの観点から見ると、シェルはコアが実行されるプラットフォームです。
ELMアーキテクチャに続いて、コアとのインターフェイスはメッセージベースです。これは、コアが純粋な計算以外は何も実行できないことを意味します。副作用(HTTP呼び出しや乱数の生成など)を作成するタスクを実行するには、コアはシェルから要求する必要があります。
コアには、潜在能力の概念(共通の副作用のための再利用可能なインターフェイス)があり、火災と焦点、リクエスト/応答、およびストリーミングセマンティクスをサポートしています。
組み込みの唯一の機能はRenderです。しかし、このリポジトリには、成熟度のさまざまな段階でいくつかの機能が含まれており、次のように簡単に自分で書くことができます。
Render (uiにviewmodelをレンダリングするように依頼) - ソース、 crux_coreに組み込まれ、リクエストのみHttp (サーフAPIに基づく完全なHTTP実装) - ソース、クレート、リクエスト/応答KeyValue (Basic Key-Value Store API) - ソース、クレート、リクエスト/応答Time (現在の時間を取得し、期間後に通知し、インスタントで通知) - ソース、クレート、リクエスト/応答Platform (現在のプラットフォームを取得) - ソース、クレート、リクエスト/応答SSE (基本的なサーバーセントイベント) - ソース、リクエスト/ストリーミングPubSub (ストリーミング付きPub Sub) - ソース、リクエスト/応答/ストリーミングTimer (タイマーの開始、終了、キャンセル) - ソース、リクエスト/応答/ストリーミングDelay - 本のチュートリアルの一部Red Badgerは、Blue ChipsとGlobal Brandsに信頼されているデジタル製品コンサルタント会社です。当社の製品設計と技術的な血統により、顧客が望むインパクトのあるデジタル製品を作成することができます。最新のエンジニアリングアプローチを使用して、持続可能な変化をもたらします。デジタル機能を埋め込み、継続的なイノベーションを促進しました。
Zulipは、ライブと非同期の会話の両方を整理するために設計されたオープンソースのモダンチームチャットアプリです。
Zulip Sponsor Cruxは、Zulipサーバーを提供することでCruxをスポンサーします - Zulipに感謝します!