Coerce-rs は、非同期 (async/rep up for) Actor ランタイムであり、Rust 用のディスペンス デバイス フレームワークです。 これにより、非常に簡単でありながら注目に値するアクターに基づいた、ほとんど分配されたデバイスの構築が可能になります。 最小限のコードで、高度にスケーラブルでフォールト トレラントな、攻撃者がプッシュするスタイリッシュなユーティリティを作成できる可能性があります。
クレート
クラスタ内のどこからでもアクターと会話できます
分配されたシャーディング
アクター ID は特定のシャードに解決できます。 Coerceノードのクラスターを介してすべての意図が展開される可能性があります
プラガブル ストレージ サプライヤ (インメモリと redis に簡単にアクセスできます。MySQL は意図的に使用されます)
分配されたPubSub
#
クローンリポジトリ git clone https://github.com/leonhartley/ coerce-rs && cd coerce-rs ## poke Cargo fabricate は、例とテストの横にあるすべてのワークスペースを作成します 貨物製造 ## または、ライブラリを作成したいときはいつでも、依存関係を作成し、テストを突く 貨物 を見てみましょう
パブ 構造体 EchoActor
impl
mut 俳優=
アンラップ(); させて hello_world=
to_string(
);
させて 結果=アクター
タイマーインスタンス EchoActor の impl アクター {} pub struct EchoMessage(String); EchoMessage の impl メッセージ { form Consequence=String; pub struct PrintTimer(String); } PrintTimer の impl TimerTick {} # impl Handler for EchoActor { async fn serve with(&mut self, msg: PrintTimer, _ctx: &mut ActorContext) { println!("{}", msg.0); } } pub async fn poke() { let mut アクター=new_actor(EchoActor {}).rep up for.unwrap(); let hello_world="ハローワールド!".to_string(); // "hello world!" を出力します。 5 秒ごとに let timer=Timer::birth(actor.clone(), Length::from_secs(𝚆𝚊𝚝𝚌𝚑 𝙽𝙾𝚆 📺