golly

package module
v1.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 27, 2026 License: MIT Imports: 0 Imported by: 0

README

Golly Logo

Golly

A robust collection of enterprise-grade, reusable Go libraries

Go Report Build Status Release Release Date GoDoc License

DocumentationInstallationPackagesCloud IntegrationsContributing


Overview

Golly is a self-contained toolkit of common utilities for the Go programming language, designed to simplify and enhance enterprise software development. It minimizes external dependencies while providing modular, production-ready libraries for everything from HTTP routing and messaging to GenAI integrations.

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

🔧 Fundamentals

Package Description
assertion Unified interface for asserting conditions with support for various types
cli Easy-to-use API for building complex command structures with argument parsing
collections Generic data structures: Stack, Queue, List, LinkedList, Set (thread-safe)
config Environment variable helpers and properties file management
errutils Custom formatted errors and multi-error aggregation
fnutils Deferred and timed function execution utilities

📡 Networking & Communication

Package Description
clients HTTP client with auth providers, retry with backoff, and circuit breaker
rest HTTP server with routing, middleware, TLS, and transport configuration
turbo Enterprise-grade HTTP router with path/query params, filters, CORS, and auth middleware
messaging General producer/consumer interfaces with local channel-based provider

🗃️ Data & Encoding

Package Description
codec Unified encoding/decoding for JSON, XML, YAML with validation
data Pipeline key-value container with typed extraction and JSON Schema generation
textutils Named ASCII character constants for readable code
semver Semantic versioning parser and comparator (SemVer 2.0.0)
uuid UUID generation (V1–V4) and parsing

🤖 AI & Intelligence

Package Description
genai Provider-agnostic GenAI/LLM interface with prompt templates and multi-part messages
genai/impl OpenAI, Claude, and Ollama provider implementations

� Security & Secrets

Package Description
secrets Comprehensive credential management: encryption algorithms (AES-CTR/GCM, ChaCha20), key versioning & rotation, credential types (API Key, Password, Certificate, Token), multi-cloud stores (AWS, GCP, Vault), and pluggable storage backends

☁️ Cloud Integrations

Repository Description
golly-aws AWS service integrations: S3, SNS, SQS, Bedrock, and Secrets Manager for credentials
golly-gcp GCP service integrations: Storage, Pub/Sub, GenAI, and Secret Manager for credentials
golly-vault HashiCorp Vault integration for centralized secret management with KV engines and advanced auth

�🛠️ Infrastructure

Package Description
chrono Task scheduler with cron, interval, and one-shot scheduling, pluggable storage, and cluster support
fsutils Filesystem utilities: existence checks, content type detection
ioutils MIME type lookup, channel utilities, and checksum calculation
vfs Virtual File System with unified interface, extensible for cloud storage
l3 Lightweight Levelled Logger with console/file writers and async support
lifecycle Component lifecycle management with dependency ordering and state tracking
managers Generic item manager for registering, retrieving, and listing named items
pool Generic, thread-safe object pool with configurable capacity

🧪 Testing

Package Description
testing/assert Lightweight assertion helpers for unit tests

📖 Full API documentation available at pkg.go.dev


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 the MIT License. See the LICENSE file for details.

Documentation

Overview

Package golly is a collection of reusable common utilities for the Go programming language.

Golly provides a wide range of sub-packages that cover common application needs including logging, configuration, REST client/server, messaging, codec, collections, CLI, GenAI providers, and more.

Each sub-package is independently importable:

import "oss.nandlabs.io/golly/rest"      // REST client and server
import "oss.nandlabs.io/golly/l3"        // Logging
import "oss.nandlabs.io/golly/codec"     // Encoding/decoding (JSON, XML, YAML)
import "oss.nandlabs.io/golly/config"    // Application configuration
import "oss.nandlabs.io/golly/messaging" // Generic messaging API
import "oss.nandlabs.io/golly/genai"     // Generative AI provider abstractions

For a complete list of packages and documentation, see: https://pkg.go.dev/oss.nandlabs.io/golly

Directories

Path Synopsis
Package assertion provides a set of utilities for making assertions in Go.
Package assertion provides a set of utilities for making assertions in Go.
Package chrono provides a full-featured task scheduler for Go applications.
Package chrono provides a full-featured task scheduler for Go applications.
Package cli provides a command-line interface (CLI) framework for building command-line applications.
Package cli provides a command-line interface (CLI) framework for building command-line applications.
Package clients provides a collection of client libraries for various services.
Package clients provides a collection of client libraries for various services.
Package codec provides a set of utilities for encoding and decoding data in Go.
Package codec provides a set of utilities for encoding and decoding data in Go.
validator
Package validator provides struct field validation using tags.
Package validator provides struct field validation using tags.
Package collections provides generic data structures for Go applications.
Package collections provides generic data structures for Go applications.
Package config provides a configuration management library for Go applications.
Package config provides a configuration management library for Go applications.
Package data provides utilities for data schema generation and data handling.
Package data provides utilities for data schema generation and data handling.
examples
assertion command
Package main demonstrates the assertion utilities.
Package main demonstrates the assertion utilities.
chrono command
Package main demonstrates the chrono package for task scheduling.
Package main demonstrates the chrono package for task scheduling.
cli command
Package main demonstrates the CLI framework for building command-line applications.
Package main demonstrates the CLI framework for building command-line applications.
clients command
Package main demonstrates the clients package: auth, retry, and circuit breaker.
Package main demonstrates the clients package: auth, retry, and circuit breaker.
codec command
Package main demonstrates the codec package for encoding/decoding data.
Package main demonstrates the codec package for encoding/decoding data.
collections command
Package main demonstrates the collections package with generic data structures.
Package main demonstrates the collections package with generic data structures.
config command
Package main demonstrates the config package for application configuration.
Package main demonstrates the config package for application configuration.
data command
Package main demonstrates the data package with Pipeline and Schema generation.
Package main demonstrates the data package with Pipeline and Schema generation.
errutils command
Package main demonstrates the errutils package.
Package main demonstrates the errutils package.
fnutils command
Package main demonstrates the fnutils package.
Package main demonstrates the fnutils package.
fsutils command
Package main demonstrates the fsutils package.
Package main demonstrates the fsutils package.
genai command
genai-claude command
Package main demonstrates the Claude (Anthropic) GenAI provider.
Package main demonstrates the Claude (Anthropic) GenAI provider.
genai-ollama command
Package main demonstrates the Ollama GenAI provider for local model inference.
Package main demonstrates the Ollama GenAI provider for local model inference.
genai-openai command
Package main demonstrates the OpenAI GenAI provider.
Package main demonstrates the OpenAI GenAI provider.
ioutils command
Package main demonstrates the ioutils package.
Package main demonstrates the ioutils package.
l3 command
Package main demonstrates the l3 (multi-level logging) package.
Package main demonstrates the l3 (multi-level logging) package.
lifecycle command
Package main demonstrates the lifecycle package for component management.
Package main demonstrates the lifecycle package for component management.
managers command
Package main demonstrates the managers package for generic item management.
Package main demonstrates the managers package for generic item management.
messaging command
Package main demonstrates the messaging package with the local (channel-based) provider.
Package main demonstrates the messaging package with the local (channel-based) provider.
pool command
Package main demonstrates the pool package for generic object pooling.
Package main demonstrates the pool package for generic object pooling.
rest-client command
Package main demonstrates the REST client for making HTTP requests.
Package main demonstrates the REST client for making HTTP requests.
rest-server command
Package main demonstrates the REST server for building HTTP APIs.
Package main demonstrates the REST server for building HTTP APIs.
schema command
secrets command
Package main demonstrates the secrets package for encryption and secret management.
Package main demonstrates the secrets package for encryption and secret management.
semver command
Package main demonstrates the semver parsing and comparison utilities.
Package main demonstrates the semver parsing and comparison utilities.
textutils command
Package main demonstrates the textutils package with ASCII character constants.
Package main demonstrates the textutils package with ASCII character constants.
turbo command
Package main demonstrates the turbo HTTP router package.
Package main demonstrates the turbo HTTP router package.
uuid command
Package main demonstrates the UUID generation utilities.
Package main demonstrates the UUID generation utilities.
vfs command
Package main demonstrates the vfs (Virtual File System) package.
Package main demonstrates the vfs (Virtual File System) package.
Package fnutils provides a set of utilities for working with functions in Go.
Package fnutils provides a set of utilities for working with functions in Go.
Package fsutils provides a set of utilities for working with the filesystem in Go.
Package fsutils provides a set of utilities for working with the filesystem in Go.
Package genai defines the provider abstraction for Generative AI services.
Package genai defines the provider abstraction for Generative AI services.
impl
Package impl provides concrete implementations of the genai.Provider interface.
Package impl provides concrete implementations of the genai.Provider interface.
Package l3 provides multi level logging for Go applications.
Package l3 provides multi level logging for Go applications.
Package lifecycle provides component lifecycle management for Go applications.
Package lifecycle provides component lifecycle management for Go applications.
Package managers provides generic manager abstractions for component registration and lookup.
Package managers provides generic manager abstractions for component registration and lookup.
Package messaging provides a set of utilities for working with messaging systems.
Package messaging provides a set of utilities for working with messaging systems.
Package pool provides a generic object pool implementation.
Package pool provides a generic object pool implementation.
Package rest provides a set of utilities for making RESTful API calls.
Package rest provides a set of utilities for making RESTful API calls.
Package secrets provides a comprehensive secret management system for Go applications.
Package secrets provides a comprehensive secret management system for Go applications.
Package semver provides a set of utilities for working with semantic versions in Go.
Package semver provides a set of utilities for working with semantic versions in Go.
Package testing provides support for automated testing of Go packages.
Package testing provides support for automated testing of Go packages.
assert
Package assert provides test assertion helpers for use in unit tests.
Package assert provides test assertion helpers for use in unit tests.
package textutils provides a set of utilities for working with text in Go.
package textutils provides a set of utilities for working with text in Go.
package turbo provides enterprise grade http routing capabilities
package turbo provides enterprise grade http routing capabilities
auth
Package auth provides authentication middleware for the Turbo HTTP router.
Package auth provides authentication middleware for the Turbo HTTP router.
filters
Package filters provides HTTP request/response filter middleware for the Turbo router.
Package filters provides HTTP request/response filter middleware for the Turbo router.
package uuid provides a set of utilities for working with UUIDs in Go.
package uuid provides a set of utilities for working with UUIDs in Go.
package vfs provides a set of utilities for working with virtual file systems in Go.
package vfs provides a set of utilities for working with virtual file systems in Go.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL