別のアプリケーションがクエリステータス情報と通信できるようにする外部 API ライブラリを提供したいメディアアプリケーションに取り組んでいます。私のアプリケーションは C# で書かれており、API DLL は同じです。最初は、WCF と名前付きパイプを単純に使用することを考えていました。インターフェイス全体を非常に簡単にコーディングできるからです。
ただし、これを行うと、たとえば Android や Web リモートを作成したい場合に、他の言語やプラットフォームがアプリケーションと通信することがほぼ不可能になることに気付きました。
では、C# コード内からの高速でシンプルなインターフェイスを可能にするだけでなく、他のプラットフォームで API を記述できるようにするために、どのプロトコルを使用できますか?
基本的な要件は次のとおりです。
- ローカルおよびリモート通信
- 低オーバーヘッド
- 手続き呼び出し
- ファイル転送 (メディアを送信するため)
- 既存の C#、オープン ソース ライブラリがあれば便利です。
以前に XML-RPC と JSON-RPC を使用して、多くのオプションを見てきましたが、コミュニティが最良のオプションであると考えているものを知りたいです。