aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: f32c1e74bf8721cd8c4a22cdd6f68d174a9beb7d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# Go Extension Library

This library contains extensions to the Go standard library that are
occasionally useful and shared across multiple projects.

## Versioning

This project and the contained modules use semantic versioning. No effort is
made to keep sub-module versions in sync.

## Dependency Philosophy

The root library is meant to be an extension of the Go standard library and
therefore does not depend on anything but the standard library itself and
golang.org/x repositories.

Other modules within the repository may pull in other dependencies outside of
the core standard library. For those cases go modules are used to isolate the
dependency to the sub-module. Wherever possible the sub-modules are designed to
reduce the dependency graph of that module to just the scope of dependencies
needed for its proper function.

## Modules

- **core (no prefix)** provides some extensions to standard library and
  golang.org/x functionality
- **cli** provides some wrapper functionality for creating command line
  interfaces with [cobra](https://github.com/spf13/cobra).
- **db/mongodb** provides a wrapper around the lower level [mongodb driver
  libraries](https://pkg.go.dev/go.mongodb.org/mongo-driver) to make it easier
  to use them.
- **echo** is a grab-bag of extensions around the [labstack echo web
  framework](https://echo.labstack.com/guide/) designed to make it easier to
  use. These extensions are starting to look like a fully fledged web framework
  in their own right with echo as the foundation. The opinions in this module are
  pretty heavy handed, use at your own risk.
- **vault** provides some wrappers around the [Hashicorp
  Vault](https://pkg.go.dev/github.com/hashicorp/vault/api) API.

## Contributing

If you find anything here useful and would like to submit patches please email
the patch (in git format-patch format) or a repository location and branch name
that the maintainers can pull and merge. We reserve the right to request
changes to patches or reject them outright but are most likely to willing and
thankfully merge them if they fit into the general theme here.

## Contributors

- [Mike Crute](https://mike.crute.us) email: mike-at-crute-dot-us