2023-05-19 20:23:55 +00:00
|
|
|
# :unicorn: Fx [![GoDoc](https://pkg.go.dev/badge/go.uber.org/fx)](https://pkg.go.dev/go.uber.org/fx) [![Github release](https://img.shields.io/github/release/uber-go/fx.svg)](https://github.com/uber-go/fx/releases) [![Build Status](https://github.com/uber-go/fx/actions/workflows/go.yml/badge.svg)](https://github.com/uber-go/fx/actions/workflows/go.yml) [![Coverage Status](https://codecov.io/gh/uber-go/fx/branch/master/graph/badge.svg)](https://codecov.io/gh/uber-go/fx/branch/master) [![Go Report Card](https://goreportcard.com/badge/go.uber.org/fx)](https://goreportcard.com/report/go.uber.org/fx)
|
2023-02-22 21:58:17 +00:00
|
|
|
|
2023-05-19 20:23:55 +00:00
|
|
|
Fx is a dependency injection system for Go.
|
2023-02-22 21:58:17 +00:00
|
|
|
|
2023-05-19 20:23:55 +00:00
|
|
|
**Benefits**
|
|
|
|
|
|
|
|
- Eliminate globals: Fx helps you remove global state from your application.
|
|
|
|
No more `init()` or global variables. Use Fx-managed singletons.
|
|
|
|
- Code reuse: Fx lets teams within your organization build loosely-coupled
|
|
|
|
and well-integrated shareable components.
|
|
|
|
- Battle tested: Fx is the backbone of nearly all Go services at Uber.
|
|
|
|
|
|
|
|
See our [docs](https://uber-go.github.io/fx/) to get started and/or
|
|
|
|
learn more about Fx.
|
2023-02-22 21:58:17 +00:00
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
2023-05-19 20:23:55 +00:00
|
|
|
Use Go modules to install Fx in your application.
|
2023-02-22 21:58:17 +00:00
|
|
|
|
|
|
|
```shell
|
|
|
|
go get go.uber.org/fx@v1
|
|
|
|
```
|
|
|
|
|
2023-05-19 20:23:55 +00:00
|
|
|
## Getting started
|
|
|
|
|
|
|
|
To get started with Fx, [start here](https://uber-go.github.io/fx/get-started/).
|
|
|
|
|
2023-02-22 21:58:17 +00:00
|
|
|
## Stability
|
|
|
|
|
2023-08-22 10:32:01 +00:00
|
|
|
This library is `v1` and follows [SemVer](https://semver.org/) strictly.
|
2023-02-22 21:58:17 +00:00
|
|
|
|
|
|
|
No breaking changes will be made to exported APIs before `v2.0.0`.
|
|
|
|
|
2023-05-19 20:23:55 +00:00
|
|
|
This project follows the [Go Release Policy](https://golang.org/doc/devel/release.html#policy). Each major
|
2023-02-22 21:58:17 +00:00
|
|
|
version of Go is supported until there are two newer major releases.
|
|
|
|
|
2023-05-19 20:23:55 +00:00
|
|
|
## Stargazers over time
|
|
|
|
|
|
|
|
[![Stargazers over time](https://starchart.cc/uber-go/fx.svg)](https://starchart.cc/uber-go/fx)
|
|
|
|
|