README.md
MoGo
====
[![Build Status][build-status-svg]][build-status-url]
[![Go Report Card][goreport-svg]][goreport-url]
[![CodeClimate][codeclimate-status-svg]][codeclimate-status-url]
[![Docs][docs-godoc-svg]][docs-godoc-url]
[![SLOC][loc-svg]][repo-url]
[![License][license-svg]][license-url]
## Overview
The `mogo` (pronounced "Mo Go" for "More Go") package provides a collection of Go utilities for common tasks.
Go is a small language which is useful from a development and maintenance
perspective but it can result in common tasks being more verbose than other
languages where there are more productivity methods. The `mogo` package's
goal is to provide wrappers for common tasks in the same spirit of `io/ioutil`
to make programming Go a bit faster.
In terms of scope, `mogo` is designed to cover all common areas, with a move to fewer dependencies.
:warning: `mogo` is in a deconstruction phase. It currently has many dependencies and the goal is to move external dependences to separate packages in the Mogo family.
See the following modules for extended functionality (with more dependencies):
* GoAuth - [github.com/grokify/goauth](https://github.com/grokify/goauth)
* GoCharts - [github.com/grokify/gocharts](https://github.com/grokify/gocharts)
* GoHTTP - [github.com/grokify/gohttp](https://github.com/grokify/gohttp)
* GoNet - [github.com/grokify/gonet](https://github.com/grokify/gonet)
* GoPhoneNumbers - [github.com/grokify/gophonenumbers](https://github.com/grokify/gophonenumbers)
## Documentation
Documentation is provided using godoc and available on [GoDoc.org](https://godoc.org/github.com/grokify/mogo).
- [crypto](https://pkg.go.dev/github.com/grokify/mogo/crypto)
- html
- [tokenizer](https://pkg.go.dev/github.com/grokify/mogo/html/tokenizer)
- [io](https://pkg.go.dev/github.com/grokify/mogo/io)
- [log](https://pkg.go.dev/github.com/grokify/mogo/log)
- [net](https://pkg.go.dev/github.com/grokify/mogo/net)
- [net/httputilmore](https://pkg.go.dev/github.com/grokify/mogo/net/httputilmore)
- [net/urlutil](https://pkg.go.dev/github.com/grokify/mogo/net/urlutil)
- [os/osutil](https://pkg.go.dev/github.com/grokify/mogo/os/osutil)
- mime
- [multipart](https://pkg.go.dev/github.com/grokify/mogo/mime/multipart)
- [sort](https://pkg.go.dev/github.com/grokify/mogo/sort)
- [strconv](https://pkg.go.dev/github.com/grokify/mogo/strconv)
- [text](https://pkg.go.dev/github.com/grokify/mogo/text)
- [time](https://pkg.go.dev/github.com/grokify/mogo/time)
- [timeutil](https://pkg.go.dev/github.com/grokify/mogo/time/timeutil)
- [type](https://pkg.go.dev/github.com/grokify/mogo/type)
## Installation
```bash
$ go get github.com/grokify/mogo/...
```
## SBOM
The SBOM is in the file [`SBOM.spdx.json`]. It is created using GitHub's built-in SBOM feature with the following additions:
1. It is converted to indented JSON for easier reading.
1. The `packages[0].downloadLocation` value as the commit hash added per [https://spdx.github.io/spdx-spec/v2.3/package-information/](downloadLocation).
## Credits
See [`CREDITS`](CREDITS.md)
## Contributing
Features, Issues, and Pull Requests are always welcome.
To contribute:
1. Fork it ( http://github.com/grokify/mogo/fork )
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request
Please report issues and feature requests on [Github](https://github.com/grokify/mogo).
[used-by-svg]: https://sourcegraph.com/github.com/grokify/mogo/-/badge.svg
[used-by-url]: https://sourcegraph.com/github.com/grokify/mogo?badge
[build-status-svg]: https://github.com/grokify/mogo/workflows/test/badge.svg?branch=master
[build-status-url]: https://github.com/grokify/mogo/actions/workflows/test.yaml
[goreport-svg]: https://goreportcard.com/badge/github.com/grokify/mogo
[goreport-url]: https://goreportcard.com/report/github.com/grokify/mogo
[codeclimate-status-svg]: https://codeclimate.com/github/grokify/mogo/badges/gpa.svg
[codeclimate-status-url]: https://codeclimate.com/github/grokify/mogo
[docs-godoc-svg]: https://pkg.go.dev/badge/github.com/grokify/mogo
[docs-godoc-url]: https://pkg.go.dev/github.com/grokify/mogo
[license-svg]: https://img.shields.io/badge/license-MIT-mogo.svg
[license-url]: https://github.com/grokify/mogo/blob/master/LICENSE
[loc-svg]: https://tokei.rs/b1/github/grokify/mogo
[repo-url]: https://github.com/grokify/mogo