golly
Golly is a collection of reusable common utilities for go programming language.
Goals
- Create reusable common collection of utilities targeting enterprise use cases
- Ensure the project is self-contained and minimise external dependencies.
Installation
go get oss.nandlabs.io/golly
Core Packages
-
clients
- A common package for all types of client
- Checkout clients that leverage this package.
- rest
- messaging
-
cli
- Easy to use API for building complex command structures
- Argument parsing and validation
-
codec
- Easy to use interface
- Multiformat support
- Unifed interface for Endcoding and Decoding data from structured format
- Out of the box support for
XML
JSON
& YAML
-
l3
- Lightweight Levelled Logger
- Multiple logging levels
OFF,ERROR,INFO,DEBUG,TRACE
- Console and File based writers
- Ability to specify log levels for a specific package
- Async logging support
- Configuration can be done using either a file,env variables,Struct values at
runtime.
-
messaging
- General producer interface for sending messages to different messaging
platforms.
- General consumer interface for receiving and processing messages from
different messaging platforms.
- A local provider interface for messaging using channels
-
rest
server
- HTTP methods: GET, POST, PUT, DELETE
- Query parameters
- Request headers
- Middleware support
- TLS Configuration
- Transport Layer Configuration
client
- HTTP methods: GET, POST, PUT, DELETE
- Query parameters
- Request headers
- Proxy Configuration
- TLS Configuration
- Transport Layer Configuration
- SSL Configuration
- Error handling
-
semver
- Adheres to the SemVer 2.0.0
specification
- Easy to use API for parsing, comparing and generating SemVer versions
- Supports pre-release and build metadata
-
turbo
- Smart Http Routing Capabilities
- Aimed for API Development
- Easy to use
- Filters
-
vfs
- Virtual File System
- Unified interface for multiple file systems
- Default implementation for local fs available
- Extensible framework
-
testing/assert
- Flexible and extensible assertion library
And many more...
Refer to Godocs for more information
Contributing
We welcome contributions to the project. If you find a bug or would like to
request a new feature, please open an issue on
GitHub.
License
This project is licensed under MIT License. See the License file for
details.