Skip to content

nandlabs/golly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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
ws WebSocket client and server (RFC 6455) with auth, retry, circuit breaker, and auto-reconnect
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 Latest Description
golly-aws v0.3.1 AWS service integrations: S3, SNS, SQS, Bedrock, and Secrets Manager for credentials
golly-gcp v0.2.1 GCP service integrations: Storage, Pub/Sub, GenAI, and Secret Manager for credentials
golly-vault v0.1.0 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.