このプロジェクトについて
anygoは、依存関係の削減を目的としたGo言語のRPCフレームワークおよび基礎ライブラリであり、各機能モジュールを独立して利用することが可能です。主な機能は以下の通りです:
**RPC Client機能**:
- 下流サービスマネージャー:設定ファイルによる接続タイムアウト、リトライ、接続プール、TLS、プロキシなどの管理をサポート。DNS、File、Host+Portのサービスディスカバリ方式と、RandomおよびRoundRobinの負荷分散戦略を内蔵しています。
- ネットワークコンポーネント:キャッシュおよびインターセプター機能を備えたDNS解決コンポーネントとTCPダイヤルコンポーネントを含みます。
- プロトコル実装:汎用的なTCP RPC Clientを提供し、Redis (Resp3) および HTTP/HTTPS プロトコルを実装済みです。
- ストレージクライアント:resp3ベースのRedis Client、および複数のデータベース(MariaDB, MySQL, SQL Server, Sqlite, Postgres)をサポートする軽量ORM db Clientを含みます。
**RPC Server機能**:
- ミドルウェアと多様なルーティングパラメータをサポートするHTTP Routerを提供します。
- HTTP Sessionコンポーネントおよび認証コード生成機能を備えています。
**汎用基礎ライブラリ**:
- 環境と設定:xattrを用いてアプリケーションのグローバル環境情報を管理し、xcfgにより環境変数やグローバル情報からJSON、XMLなどの形式の設定を読み込むことができます。
- キャッシュコンポーネント (xcache):ジェネリクスをサポートし、ファイル、メモリ(LRU/FIFO/LIFO)、Redis、データベースストレージを内蔵。多層キャッシュ構成 (Chains) および透過的読み取りテンプレート (Reader) をサポートしています。
- KVストレージ:Redis風のKey-Value APIを提供し、String, List, Hash, Set, ZSetなどの型をサポート。底层ストレージドライバを柔軟に切り替え可能です。
- その他ツール:slogベースにカプセル化されたログライブラリ (xlog)、ジェネリクスアサーションライブラリ (xt)、および国際化 (i18n) サポートを提供します。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.