go-core is a comprehensive, modular collection of Go libraries designed to accelerate professional application development. It provides robust, production-grade utilities for error handling, configuration, logging, caching, database management, security, service orchestration, and more. Each package is crafted for extensibility, reliability, and seamless integration.
⚠️ Breaking Changes: This library is under active development and primarily maintained for personal use. The API may change without notice as new features are added and improvements are made. Backward compatibility is not guaranteed.
- Custom error types with stack traces and context
- Utility functions for error propagation and recovery
- In-memory, Redis, and distributed caching
- TTL, LRU eviction, serialization, and advanced cache configuration
- Structured config loading from files, flags, and environment
- Dynamic watching, validation, and default value registration
- Flexible logging framework with adapters for zerolog, standard log, and no-op
- Global logger registry, structured logging, and zero-allocation logger
- Log rotation and custom output targets
- Abstraction over GORM with automatic connection handling
- Schema migrations, transaction management, and multi-database support
- Simple API for command-line flag parsing
- Graceful shutdown and panic recovery utilities
- Estimate memory footprint of Go values
- Unique machine ID generation and hardware info (CPU, features)
- Comprehensive email sending and SMTP server functionality
- Security features: HELO validation, IP filtering, rate limiting
- Delivery tracking, retry logic, and template management
- Background job processing system
- In-memory, Redis, and RabbitMQ support
- Scheduling, middleware, job context, and distributed execution
- Cryptographic utilities: PGP, AES encryption/decryption
- Secure operations for sensitive data and communication
- Service lifecycle management and deployment
- Integration with kardianos/service, shutdown handling, and cross-platform support
- Configurable HTTP server with middleware support
- JSON-RPC over HTTP and WebSocket (requires Protocol Buffer definitions for server generation)
- Rate limiting, request metadata, and automatic method dispatch
- Build/version info embedding and management
- Precise control over application metadata
go get github.com/valentin-kaiser/go-coreapperror: Advanced error handlingcache: Multi-backend caching (memory, Redis)config: Structured configuration managementdatabase: Database abstraction and migrationsflag: Command-line flag parsinginterruption: Panic recovery and graceful shutdownlogging: Flexible logging adapters and registrymachine: Machine identification and hardware infomail: Email sending, SMTP server, and securitymemsize: Memory size estimationqueue: Job/task queues and distributed processingsecurity: Cryptography and secure operationsservice: Service lifecycle and deploymentversion: Build/version info managementweb: HTTP server and middlewareweb/jrpc: JSON-RPC over HTTP/WebSocketzlog: Zero-allocation logger
See GoDoc for full API documentation and usage details.
Contributions, issues, and feature requests are welcome! Please see CONTRIBUTING.md for guidelines.
This project is licensed under the BSD 3-Clause License. See LICENSE for details.