Об этом проекте
anygo представляет собой RPC-фреймворк и базовую библиотеку на языке Go, разработанную для минимизации зависимостей, где каждый функциональный модуль может использоваться независимо. Основные возможности включают:
**Функции RPC Client**:
- Менеджер нижестоящих сервисов: поддержка управления таймаутами соединений, повторными попытками, пулами соединений, TLS и прокси через конфигурационные файлы; встроенные способы обнаружения сервисов DNS, File, Host+Port, а также стратегии балансировки нагрузки Random и RoundRobin.
- Сетевые компоненты: включает компоненты DNS-резолвера и TCP-dialer с функциями кэширования и перехватчиков.
- Реализация протоколов: предоставляет универсальный TCP RPC Client, реализованы протоколы Redis (Resp3) и HTTP/HTTPS.
- Клиенты хранилищ: включает Redis Client на базе resp3 и легковесный ORM db Client с поддержкой различных баз данных (MariaDB, MySQL, SQL Server, Sqlite, Postgres).
**Функции RPC Server**:
- Предоставляет HTTP Router с поддержкой промежуточного ПО (middleware) и различных параметров маршрутизации.
- Включает компонент HTTP Session и функционал генерации капчи.
**Универсальная базовая библиотека**:
- Окружение и конфигурация: xattr используется для управления глобальной информацией об окружении приложения; xcfg поддерживает чтение конфигураций в форматах JSON, XML и др. из переменных окружения и глобальной информации.
- Компонент кэширования (xcache): поддержка дженериков, встроенное хранение в файлах, памяти (LRU/FIFO/LIFO), Redis и базах данных; поддержка многоуровневых комбинаций кэша (Chains) и шаблонов прозрачного чтения (Reader).
- KV-хранилище: предоставляет Key-Value API, имитирующий Redis, с поддержкой типов String, List, Hash, Set, ZSet и возможностью гибкой смены драйвера базового хранилища.
- Другие инструменты: библиотека логирования (xlog) на базе slog, библиотека generic-утверждений (xt) и поддержка интернационализации (i18n).
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.