Go Utils is a curated collection of high-performance, production-ready Go utility functions and packages. Designed for speed, efficiency, and robustness, these utilities have been rigorously tested and optimized for demanding applications.
Key Features:
- Performance-Focused: Leveraging unsafe optimizations and efficient algorithms for maximum speed.
- Production-Ready: Battle-tested across numerous production environments.
- Comprehensive Suite: Covering a wide range of utility needs from string manipulation to concurrency management.
- Well-Documented: Ensuring reliability and ease of use.
Package | Description |
---|---|
bytesutils |
Optimized byte manipulation utilities. |
cacheutils |
High-performance caching implementations. |
channelutils |
Robust channel utilities with comprehensive testing. |
gopool |
Efficient goroutine pool management for concurrent tasks. |
intutils |
Optimized integer manipulation functions. |
iterutils |
Flexible iterator implementations for data processing. |
net |
Networking utilities, including HTTP client helpers and user agent parsing. |
poolutils |
Versatile pool implementations (LRU, limited, recycler) for resource management. |
sliceutils |
Optimized slice manipulation utilities for common operations. |
stringutils |
String manipulation with unsafe optimizations for critical performance paths. |
terminalutils |
ANSI terminal utilities for rich command-line interfaces. |
go get github.com/sudosz/go-utils
Import the specific package you need:
import (
"fmt"
stringutils "github.com/sudosz/go-utils/strings"
)
func main() {
result := stringutils.ToLower("EXAMPLE STRING")
fmt.Println(result) // Output: example string
}
Contributions are highly encouraged! Please follow these guidelines:
- Fork the repository.
- Create a feature branch (
git checkout -b feature/your-feature
). - Implement your changes and write thorough tests.
- Ensure code adheres to
gofmt
andgolint
. - Submit a pull request with a clear description of your changes.
This project is licensed under the MIT License. See the LICENSE file for details.