About this project
anygo is a Go language RPC framework and base library designed to reduce dependencies, with functional modules that can be used independently. Its main features include:
**RPC Client Features**:
- Downstream Service Manager: Supports managing connection timeouts, retries, connection pools, TLS, and proxies via configuration files. It includes built-in DNS, File, and Host+Port service discovery methods, as well as Random and RoundRobin load balancing strategies.
- Network Components: Includes DNS resolution and TCP dialing components with caching and interceptor functionality.
- Protocol Implementation: Provides a general TCP RPC Client, with Redis (Resp3) and HTTP/HTTPS protocols already implemented.
- Storage Clients: Includes a Redis Client based on resp3 and a lightweight ORM db Client supporting multiple databases (MariaDB, MySQL, SQL Server, Sqlite, Postgres).
**RPC Server Features**:
- Provides an HTTP Router that supports middleware and various routing parameters.
- Includes an HTTP Session component and CAPTCHA generation functionality.
**General Base Library**:
- Environment and Configuration: xattr is used to manage global application environment information; xcfg supports reading JSON, XML, and other configuration formats from environment variables and global information.
- Cache Component (xcache): Supports generics and includes built-in file, memory (LRU/FIFO/LIFO), Redis, and database storage. It supports multi-level cache combinations (Chains) and transparent reading templates (Reader).
- KV Storage: Provides a Redis-like Key-Value API supporting String, List, Hash, Set, and ZSet types, with the ability to flexibly switch underlying storage drivers.
- Other Tools: A logging library (xlog) encapsulated based on slog, a generic assertion library (xt), and internationalization (i18n) support.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.