タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

grpcとpluginに関するy_yukiのブックマーク (2)

  • go-plugin × gRPC で自作Goツールにプラグイン機構を実装する方法 - 好奇心に殺される。

    Go go-plugin × gRPC で自作Goツールにプラグイン機構を実装する方法 go-pluginパッケージを使ってgRPCプラグイン機構を提供する方法を調べたので紹介します。 Overview こんにちは pon です。これはGo 2 Advent Calendar 2020 の15日目の記事です。 自作ツールに素敵なプラグイン機構を仕込みたいことありますよね。今回はTerraformやPackerなどでプラグイン機構をして利用されているパッケージであるhashicorp/go-pluginの使い方を紹介し、実際にどのように実装するかをコードをあげて紹介します。 go-pluginとは go-pluginは、RPCを介したGoのプラグインシステムです。 TerraformなどHashicorpの様々なOSSの内部でも使われているので実績は抜群です。RPCを介すると言いますがローカ

    go-plugin × gRPC で自作Goツールにプラグイン機構を実装する方法 - 好奇心に殺される。
  • Go言語で実装するプラグイン機構

    ソフトウェアに拡張性を持たせる時にプラグイン機構を持たせる事は一般的ですが、それを実現する方法は結構バラバラなのかなと思います。例えば、 C 言語等の.so/.dll を読み込む方法 Nodejs のような言語での単なる import TCP や Unix ソケットを利用して RPC 通信を行う方法 などが有るのかなと思います。1 番目・2 番目は、関数の呼び出し速度等のオーバーヘッドが少なく高速ですが、言語等の制約が大きくなる・メモリを共有することによるセキュリティリスクが発生します。そこで、提供するインターフェースを制約出来る場合は、3 番目の手法が多く使われるようです。 Go 言語で開発されている、hashicorp/terraform cloudfoundry/cli は共に 3 番目の RPC 通信でプラグイン機構を実装しています。その中でも terraform で使用されている

    Go言語で実装するプラグイン機構
  • 1