Об этом проекте

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).