goulc

module
v0.0.0-...-cc9de6e Latest Latest
Warning

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

Go to latest
Published: Mar 29, 2026 License: GPL-3.0, LGPL-3.0, LGPL-3.0

README ΒΆ

GoULC (Go Utils Library Collection) πŸš€

Matrix Go Report Card Go Reference coverage

GoULC (pronounced as one word) is a collection of Go libraries I developed for my professional and personal usage. Born out of the desire to reduce cascading and/or redundant dependencies across projects, GoULC focuses on lightweight implementations while leveraging Go's standard library whenever possible. While primarily designed for my own use cases, feel free to use it if it fits your needs! 😊

πŸ“Œ Why GoULC?

  1. πŸ”— Dependency Management: Tired of importing numerous libraries for basic functionality.
  2. πŸ“š Standard Library First: Leverages Go's standard library whenever possible.
  3. πŸ› οΈ Framework Agnostic: Core functionality works without external dependencies.
  4. 🏒 Real-World Usage: Actually used in professional environments.

🎯 Philosophy

  • Minimal Dependencies: Preference for standard library implementations where possible.
  • Flexible Integration: Use of interfaces for maximum adaptability.
  • Security-First: Careful consideration of dependencies and their impact.
  • Build Tags: External dependencies are isolated using build tags (e.g., //go:build gorm).

πŸ“¦ Available Packages for Now

πŸ”€ ASCII Package

A Go package for validating and checking ASCII string properties. It provides simple functions to verify ASCII compliance and detect special characters.

See the ascii package documentation.

πŸ“ ByteSize

A package for working with byte sizes in Go. It provides support for parsing, formatting, and arithmetic operations for byte sizes from Bytes up to Pebibytes.

See the bytesize package documentation.

⏱️ Duration

A Go package for handling time durations with JSON support. It wraps the standard time.Duration type to provide parsing and formatting capabilities for JSON serialization and deserialization.

See the duration package documentation.

πŸ™ˆ Hided

A Go package to prevent sensitive data leakage from logs and error messages. It provides a simple interface with support for obfuscation and integration with Gorm ORM.

See the hided package documentation.

🌐 HTTP Package

A Go package providing a flexible and thread-safe HTTP client with built-in support for various authentication methods and advanced features.

See the HTTP package documentation.

πŸ“ Logging

A light and flexible logging package built on top of log/slog that supports multiple output handlers, log levels, and framework integrations.

See the logging package documentation.

🀝 Contributing

Contributions are always welcome ! Feel free to submit a Pull Request. πŸŽ‰

Take a look at the contributing guide

πŸ“œ License

This library is licensed under the GNU Lesser General Public License v3.0 or later (LGPL v3 or later).

How to use it

The LGPLv3 license only requires that:

  1. You provide attribution (include copyright notices)
  2. You include a copy of the licenses with your distribution
  3. Your application code remains under your chosen license

For the complete license text, see COPYING AND COPYING.LESSER.

What this means
  • βœ… You can use this library in any software project regardless of your project's license (MIT, Apache, GPL, proprietary, etc.)
  • βœ… Any modifications to this library must be shared under the same license with the community
  • βœ… If you distribute this library (modified or not), you must include the license and copyright notices

πŸ› οΈ Support

  • Report bugs by opening an issue
  • Request features through issues
  • Ask questions in issues

Made with ❀️ by Adrien Kara

Directories ΒΆ

Path Synopsis
Package ascii implements ASCII string validation functions.
Package ascii implements ASCII string validation functions.
Package bytesize provides functionality for handling byte size values using IEC binary units (powers of 1024).
Package bytesize provides functionality for handling byte size values using IEC binary units (powers of 1024).
examples
ascii command
bytesize/basic command
bytesize/json command
duration command
hided command
http/client command
logging/basic command
logging/gorm command
build: go run -tags=gorm main.go
build: go run -tags=gorm main.go
Package hided provides types and methods to obfuscate or mask sensitive data.
Package hided provides types and methods to obfuscate or mask sensitive data.
http
client
Package client is designed to be safe for concurrent use and provides fluent interfaces.
Package client is designed to be safe for concurrent use and provides fluent interfaces.
client/auth
Package auth implements authentication mechanisms for HTTP requests.
Package auth implements authentication mechanisms for HTTP requests.
client/auth/oauth2
Package oauth2 implements OAuth 2.0 specification.
Package oauth2 implements OAuth 2.0 specification.
utils
Package utils provides http utility functions.
Package utils provides http utility functions.

Jump to

Keyboard shortcuts

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