Skip to content

About

Helpers and utilities for Golang in order to do actions not available in the standard library.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

40 stars

Watchers

1 watching

Forks

Latest commit

 

History

1,234 Commits

Folders and files

Golang utilities

Go Badge License CI Go Reference Documentation Compliance CII Best Practices Scorecard

Overview

This repository contains various helpers and utilities for Golang in order to do actions not available in the standard library. It was initially developed for numerous projects at Arm, including some running in production, in order to apply the DRY principle.

Few helpers may be themselves leveraging 3rd party libraries.

Maintainers: @ARM-software/golang-utils-admin

Using this library

Each top-level consumable package under utils/ is now its own Go module.

Use the narrowest module that matches the package you import. For example:

go get github.com/ARM-software/golang-utils/utils/collection@latest
go get github.com/ARM-software/golang-utils/utils/http@latest
go get github.com/ARM-software/golang-utils/utils/serialisation@latest
go get github.com/ARM-software/golang-utils/utils/validation@latest

Compatibility note: The github.com/ARM-software/golang-utils/utils module remains a lightweight umbrella for compatibility and tooling. New consumers should depend on an individual submodule. The first submodule tags will be published by the next CDS project release; v1.170.7 and earlier contain only the original umbrella module.

If a project still requires a pre-split umbrella version such as github.com/ARM-software/golang-utils/utils v1.170.7, upgrade that requirement to the first split-aware umbrella release before adding an individual module such as github.com/ARM-software/golang-utils/utils/collection. Mixing a pre-split umbrella version with a split module causes Go to fail with an ambiguous import error because both modules appear to provide the same package path.

See the Go modules guide for consumer and developer guidance.

Releases

For release notes and a history of changes of all production releases, please see the following:

Project Structure

The following describes the major aspects of the project structure:

  • docs/ - Code reference documentation.
  • go.work - Repository-wide Go workspace definition.
  • utils/ - Umbrella module plus the repository's Go submodules.
  • changes/ - Collection of news files for unreleased changes.

Getting Help

Contributing

About

Helpers and utilities for Golang in order to do actions not available in the standard library.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

40 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages