A collection of high-performance, modular utilities for enhancing testing, transactional consistency, efficiency, security, and stability in cloud-native Go applications.
assert: Provides tools for testing, including utility functions to assert value equality and simplify debugging during development.consistency: Implements transactional log management withEventandEventTypeabstractions, and supports file-based persistence usingJsonFileLoggerfor reliable data storage.efficiency: Offers utilities for generating read-only channels, merging and splitting streams, concurrent processing of channel items, and partitioning key-value stores using shards for scalability and performance.extensibility: Dynamically loads external Go plugins usingLoadPlugin. Just provide a symbol name (e.g., a function) to integrate new features on-the-fly—no rebuilds or redeploys required.logging: Creates a log record consists of a time, a level, a message, and a set of key-value pairs, where the keys are strings and the values may be of any type.messaging: Implements messaging patterns like publish-subscribe to decouple local and remote services.resource: Supplies a generic Access[K, V] interface for CRUD operations on key-value pairs, backed by an in-memory and JSON file implementation.security: Includes encryption and decryption with AES-GCM, secure id and key generation, HMAC hashing, bcrypt-based password handling, and a preconfigured secure HTTPS client and server with liveness and readiness probes for robust application security.service: Enhances service orchestration by grouping related functionality, wrapping functions to support context-aware execution and add lifecycle-oriented functionality like signal handling in cloud-native environments.stability: Ensures service robustness with mechanisms like circuit breakers, retries for transient failures, throttling for rate limiting, debounce for execution control, and timeouts for enforcing execution limits.templating: Provides anEnginefor managing templates stored in an embedded filesystem. UseParseto load multiple templates (via glob patterns), andRenderto execute them with custom data.