Skip to content

๐ŸงŠ A modern essentials Golang utility presets. All collections of development in one resource

License

Notifications You must be signed in to change notification settings

thuongtruong109/gouse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Banner


Made possible by my Sponsor Program ๐Ÿ’–

๐Ÿง  Why Gouse?

  • Gouse is a modern essentials Golang utility package delivering consistency, modularity, performance, and extras presets.
  • Built on top of Go language, and others Go open-source packages.
  • Inspired by Lodash so Javascript user-friendly syntax.
  • Lightweight package: easy to use, chainable, extendable, available.
  • Gouse provides a wide variety of available methods, taking the hassle out of working with any type requests. So you can pick the one of them that fit your project demands.
  • Powerful package of built-in functions provide comprehensive, and reliable solutions for any project size and compatible with all OS platforms.
  • Open-source, free to use, and contribute.

๐ŸŽฏ Features

  • Thanks to Gouse, you can:
    • Set up and scale projects rapidly.
    • No config - import directly as utility functions.
    • Handle complex logic use-cases such as database connection, build APIs, error handling, log management...
    • Optimize performance and increase productivity.
    • Build easily consistent systems with available functions.
    • Avoid writing repetitive code and a unified code style.
    • Reduce the number of lines of code and make it easier to read, understand, and maintain.
    • Avoid compatibility conflicts and unexpected errors.
    • Works smoothly in any environment and platform.
    • Easy to learn and use, suitable for beginners and experts.
    • Compatible with all frameworks and libraries.
    • Referencing examples with comprehensive documentation
    • And more...

โœจ Motivation

  • Go has emerged as a server language, but it still doesn't have complete and consistent packages available to support coding development.
  • Developers must write by hand or search manually. That wastes time and even causes many compatibility conflicts.
  • Must update each dependent package every time when project update.
  • Unexpected errors can easily arise during execution.
  • Performance is not optimized.
  • The number of lines of code is very long that not easy to read and understand.
  • Code logic may not be consistent, making it difficult to maintain and scale.
  • Hard to make sure the programs are executed the same across all environments.
  • Lack of coherent learning materials and examples.

๐Ÿ‘‰ To address that need, Gouse was created as a powerful presets toolkit for Go developers, a collection of built-in functions and best practices that provide comprehensive, powerful, and reliable solutions. Trusted to build services, software platforms, APIs, and web applications.

๐Ÿš€ Module packages

Below is a list of modules that Gouse supports. This project is still in development stage, so not all features are available.

api array cache chart config console connection cron crypto date function helper io logger math media net number os print random regex string struct time type

๐Ÿ“‹ Requirements

Compatibility with Go >= 1.18

๐Ÿ“ฆ Installation

go get -u github.com/thuongtruong109/gouse

or add to your go.mod file:

required github.com/thuongtruong109/gouse

๐Ÿ•ฏ๏ธ Quick Start

package main

import "github.com/thuongtruong109/gouse"

func main() {
    gouse.Stater()
}

๐Ÿฆ„ Usage

  • Using package directly in your module as ultra-lightweight utility functions.
package main

import "github.com/thuongtruong109/gouse"

func main() {
    gouse.Print(gouse.Add(1, 2))
}
  • View more examples at sample folder.

๐Ÿ“– Documentation

  • To read the completely package documentation guide, reference at Dev package

๐Ÿ“Š Benchmark

GOOS: windows

GOARCH: amd64

CPU: AMD Ryzen 5 5600U with Radeon Graphics (12) @ 2.300GHz

ITERATIONS: 5

INPUT: 1000000

Benchmark

๐Ÿ“ Project Structure

Project Structure FOSSA Status

๐Ÿ› ๏ธ Development

$ git clone https://github.com/thuongtruong109/gouse.git

๐Ÿ“ Contributing

Gouse is an open source project and built on the top of other open-source projects. Welcome all the kinds of contributions. No matter it is for typo fix, bug fix or big new features. Please do not hesitate to ask a question or send a pull request.

We strongly value documentation and integration with other projects, so we are very glad to accept improvements for these aspects.

If you're looking for issues to work on, try looking at the good first issue list. We do our best to tag issues suitable for new external contributors with that label, so it's a great way to find something you can help with!

๐Ÿ“„ License

FOSSA License Status

FOSSA Status

๐Ÿ“Œ Support

  • The tool has been tested on a variety of inputs, but it's not perfect.
  • For support in using Gouse, please reach out in the following venues:
    • Raise Issues - For generally applicable issues and feedback.
    • Join Discussions - For ideas, questions, or issues regarding Gouse's design, development, and future.

๐Ÿ“œ Changelog

  • Gouse is under active development. This means that new features, bug fixes, and breaking changes will be released frequently. We encourage you to keep the CHANGELOG open while upgrading to see what's new!

  • For more information on how to use the changelog, please refer to Keeping a Changelog.

๐ŸŒธ Sponsor

  • If you like this project, you can sponsor me on:

Github sponsor Paypal Kofi

๐Ÿ“ฎ Contact

  • If you have any questions, please contact me:

Email Github Linkedin Facebook

๐Ÿงฌ Dependencies

  • Gouse is built on top of the following below and others open-source projects

  • Special thanks to the following dependencies that helped make this project possible:

    • Google UUID - A fast and simple UUID library for Go ๐Ÿ”‘
    • Survey v2 - A golang library for building interactive prompts with full support for windows and posix terminals ๐Ÿ™‹
    • Bubbletea - A powerful little TUI framework ๐Ÿ—
    • Go Cache - An in-memory key:value store/cache (similar to Memcached) ๐Ÿ—„
    • Crypto - A collection of cryptographic algorithms and protocols for Go ๐Ÿ“ฆ
    • Go eCharts - ๐ŸŽจ The adorable charts library for Golang ๐Ÿ“Š
    • Env config x Go Toml - A Go library for managing configuration data from files ๐Ÿ“„
    • Minio Client Go v7 - MinIO Go Library for Amazon S3 compatible cloud storage ๐Ÿ“ฆ
    • Mongodb Go driver - The MongoDB supported driver for Go ๐Ÿ“ฆ
    • Redis Go v8 - Type-safe Redis client for Golang ๐Ÿ“ฆ
    • Cache for Go - An in-memory key:value store/cache (similar to Memcached) library for Go ๐Ÿ—„
    • Toml Go - A Go library for managing configuration data from files ๐Ÿ“„
    • Yaml - A YAML support for the Go language ๐Ÿ“„

๐Ÿ“š References

About

๐ŸงŠ A modern essentials Golang utility presets. All collections of development in one resource

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 7

Languages