Dependency Injection - Awesome Go
Libraries for working with dependency injection.
- alice - Additive dependency injection container for Golang.
- autowire - Dependency injection using Generics and reflection.
- boot-go - Component-based development with dependency injection using reflections for Go developers.
- componego - A dependency injection framework based on components, allowing dynamic dependency replacement without duplicating code in tests.
- cosban/di - A code generation based dependency injection wiring tool.
- di - A dependency injection container for go programming language.
- dig - A reflection based dependency injection toolkit for Go.
- dingo - A dependency injection toolkit for Go, based on Guice.
- do - A dependency injection framework based on Generics.
- fx - A dependency injection based application framework for Go (built on top of dig).
- gocontainer - Simple Dependency Injection Container.
- goioc/di - Spring-inspired Dependency Injection Container.
- GoLobby/Container - GoLobby Container is a lightweight yet powerful IoC dependency injection container for the Go programming language.
- gontainer - A dependency injection service container for Go projects.
- gontainer/gontainer - A YAML-based Dependency Injection container for GO. It supports dependencies' scopes, and auto-detection of circular dependencies. Gontainer is concurrent-safe.
- google/wire - Automated Initialization in Go.
- HnH/di - DI container library that is focused on clean API and flexibility.
- kinit - Customizable dependency injection container with the global mode, cascade initialization and panic-safe finalization.
- kod - A generics based dependency injection framework for Go.
- linker - A reflection based dependency injection and inversion of control library with components lifecycle support.
- nject - A type safe, reflective framework for libraries, tests, http endpoints, and service startup.
- ore - Lightweight, generic & simple dependency injection (DI) container.
- wire - Strict Runtime Dependency Injection for Golang.
- ardanlabs/service - A starter kit for building production grade scalable web service applications.
- cookiecutter-golang - A Go application boilerplate template for quick starting projects following production best practices.
- go-blueprint - Allows users to spin up a quick Go project using a popular framework.
- go-module - Template for a typical module written on Go.
- go-sample - A sample layout for Go application projects with the real code.
- go-starter - An opinionated production-ready RESTful JSON backend template, highly integrated with VSCode DevContainers.
- go-todo-backend - Go Todo Backend example using modular project layout for product microservice.
- gobase - A simple skeleton for golang application with basic setup for real golang application.
- golang-standards/project-layout - Set of common historical and emerging project layout patterns in the Go ecosystem. Note: despite the org-name they do not represent official golang standards, see this issue for more information. Nonetheless, some may find the layout useful.
- golang-templates/seed - Go application GitHub repository template.
- goxygen - Generate a modern Web project with Go and Angular, React, or Vue in seconds.
- insidieux/inizio - Golang project layout generator with plugins.
- modern-go-application - Go application boilerplate and example applying modern practices.
- nunu - Nunu is a scaffolding tool for building Go applications.
- pagoda - Rapid, easy full-stack web development starter kit built in Go.
- scaffold - Scaffold generates a starter Go project layout. Lets you focus on business logic implemented.
- wangyoucao577/go-project-layout - Set of practices and discussions on how to structure Go project layout.
- bexp - Go implementation of Brace Expansion mechanism to generate arbitrary strings.
- caps - A case conversion library.
- go-formatter - Implements replacement fields surrounded by curly braces {} format strings.
- gobeam/Stringy - String manipulation library to convert string to camel case, snake case, kebab case / slugify etc.
- strcase - Case-insensitive implementation of the standard library's strings/bytes packages.
- strutil - String utilities.
- sttr - cross-platform, cli app to perform various operations on string.
- xstrings - Collection of useful string functions ported from other languages.
- anagent - Minimalistic, pluggable Golang evloop/timer handler with dependency-injection.
- antch - A fast, powerful and extensible web crawling & scraping framework.
- archiver - Library and command for making and extracting .zip and .tar.gz archives.
- autoflags - Go package to automatically define command line flags from struct fields.
- avgRating - Calculate average score and rating based on Wilson Score Equation.
- banner - Add beautiful banners into your Go applications.
- base64Captcha - Base64captch supports digit, number, alphabet, arithmetic, audio and digit-alphabet captcha.
- basexx - Convert to, from, and between digit strings in various number bases.
- battery - Cross-platform, normalized battery information library.
- bitio - Highly optimized bit-level Reader and Writer for Go.
- browscap_go - GoLang Library for Browser Capabilities Project.
- captcha - Package captcha provides an easy to use, unopinionated API for captcha generation.
- common - A library for server framework.
- conv - Package conv provides fast and intuitive conversions across Go types.
- datacounter - Go counters for readers/writer/http.ResponseWriter.
- faker - Fake data generator.
- faker - Random fake data and struct generator for Go.
- ffmt - Beautify data display for Humans.
- gatus - Automated service health dashboard.
- go-commandbus - A slight and pluggable command-bus for Go.
- go-commons-pool - Generic object pool for Golang.
- go-openapi - Collection of packages to parse and utilize open-api schemas.
- go-resiliency - Resiliency patterns for golang.
- go-unarr - Decompression library for RAR, TAR, ZIP and 7z archives.
- gofakeit - Random data generator written in go.
- gommit - Analyze git commit messages to ensure they follow defined patterns.
- gopsutil - Cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc).
- gosh - Provide Go Statistics Handler, Struct, Measure Method.
- gosms - Your own local SMS gateway in Go that can be used to send SMS.
- gotoprom - Type-safe metrics builder wrapper library for the official Prometheus client.
- gountries - Package that exposes country and subdivision data.
- gtree - Provide CLI, Package and Web for tree output and directories creation from Markdown or programmatically.
- health - A simple and flexible health check library for Go.
- health - Easy to use, extensible health check library.
- healthcheck - An opinionated and concurrent health-check HTTP handler for RESTful services.
- hostutils - A golang library for packing and unpacking FQDNs list.
- indigo - Distributed unique ID generator of using Sonyflake and encoded by Base58.
- lk - A simple licensing library for golang.
- llvm - Library for interacting with LLVM IR in pure Go.
- metrics - Library for metrics instrumentation and Prometheus exposition.
- morse - Library to convert to and from morse code.
- numa - NUMA is a utility library, which is written in go. It help us to write some NUMA-AWARED code.
- openapi - OpenAPI 3.x parser.
- pdfgen - HTTP service to generate PDF from Json requests.
- persian - Some utilities for Persian language in go.
- sandid - Every grain of sand on earth has its own ID.
- shellwords - A Golang library to manipulate strings according to the word parsing rules of the UNIX Bourne shell.
- shortid - Distributed generation of super short, unique, non-sequential, URL friendly IDs.
- shoutrrr - Notification library providing easy access to various messaging services like slack, mattermost, gotify and smtp among others.
- sitemap-format - A simple sitemap generator, with a little syntactic sugar.
- stateless - A fluent library for creating state machines.
- stats - Monitors Go MemStats + System stats such as Memory, Swap and CPU and sends via UDP anywhere you want for logging etc...
- turtle - Emojis for Go.
- url-shortener - A modern, powerful, and robust URL shortener microservice with mysql support.
- VarHandler - Generate boilerplate http input and output handling.
- varint - A faster varying length integer encoder/decoder than the one provided in the standard library.
- xdg - FreeDesktop.org (xdg) Specs implemented in Go.
- xkg - X Keyboard Grabber.
- xz - Pure golang package for reading and writing xz-compressed files.