ネットワークアプリケーション作成フレームワーク ErgoFramework 2.2をリリース

ErgoFramework 2.2 の次のリリースが行われ、完全な Erlang ネットワーク スタックとその OTP ライブラリが Go 言語で実装されました。 このフレームワークは、既製の汎用設計パターン gen.Application、gen.Supervisor、gen.Server と特殊な設計パターン gen.Server を使用して Go 言語で分散ソリューションを作成するための Erlang の世界からの柔軟なツールを開発者に提供します。 Stage (分散パブ/サブ)、gen. Saga (分散トランザクション、SAGA 設計パターンの実装)、gen.Raft (Raft プロトコルの実装)。

さらに、このフレームワークは、Erlang/OTP および Elixir では利用できないエンドツーエンド暗号化によるプロキシ機能を提供します。 Go 言語には Erlang プロセスに直接似たものがないため、フレームワークは gen.Server の基礎としてゴルーチンを使用し、例外状況を処理するために「recover」ラッパーを備えています。 プロジェクト コードは MIT ライセンスに基づいて配布されます。

ErgoFramework のネットワーク スタックは、Erlang プロトコルの DIST 仕様を完全に実装しています。 これは、ErgoFramework に基づいて作成されたアプリケーションが、Erlang または Elixir プログラミング言語で作成されたアプリケーションとネイティブに動作することを意味します (Erlang ノードとの対話の例)。 gen.Stage デザイン パターンは Elixir GenStage 仕様に従って実装されており、Elixir GenStage 仕様と完全に互換性があることにも注目してください (実装例)。

新しいリリースでは:

  • 新しいテンプレートが追加されました
    • gen.Web は、Web API ゲートウェイ (フロントエンドのバックエンドとも呼ばれる) 設計パターンです。 例。
    • gen.TCP は、最小限のコード記述で TCP 接続アクセプタのプールを実装できるテンプレートです。 例。
    • gen.UDP - gen.TCP テンプレートに似ていますが、UDP プロトコル専用です。 例。
  • 新しいイベント機能は、ノード内に単純なイベント バスを実装することで提案されており、ローカル プロセス間でイベント (パブリッシュ/サブスクライブ) を交換するためのメカニズムを作成できます。 例。
  • 型登録のサポートが追加されました。これにより、ネイティブ Golang データ型へのメッセージの自動シリアル化/逆シリアル化が可能になります。 これは、受信したすべてのメッセージに対して etf.TermIntoStruct を使用する必要がなくなったことを意味します。 登録されたタイプは指定されたタイプに自動的に変換されるため、分散ノード間のメッセージ交換のパフォーマンスが大幅に向上します。

出所: オープンネット.ru

コメントを追加します