このプロジェクトについて

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) サポートを提供します。