Skip to content

nandlabs/golly

Repository files navigation

testing release releaseDate Go Version godoc

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

  • assertion

    • Unified interface for asserting conditions
    • Supports various assertion functions for different types of conditions
  • clients

    • A common package for all types of client
    • Checkout clients that leverage this package.
  • 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
  • collections

    • A collection of generic data structures
    • Stack, Queue, List,LinkedList, Set
    • Synchronized versions of the above
  • genai

    • Interact with generative AI models
    • Manage sessions, exchanges, and models
    • Handle memory and templates
  • 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.