unleash-client-go
Unleash Client for Go. Read more about the Unleash project
Getting started
1. Install unleash-client-go
go get github.com/Unleash/unleash-client-go
2. Initialize unleash
The easiest way to get started with Unleash is to initialize it early in your application code:
import (
"github.com/Unleash/unleash-client-go"
)
func init() {
unleash.Initialize(
unleash.WithAppName("my-application"),
unleash.WithUrl("http://unleash.herokuapp.com/api/"),
)
}
3. Use unleash
After you have initialized the unleash-client you can easily check if a feature toggle is enabled or not.
unleash.IsEnabled("app.ToggleX")
4. Stop unleash
To shut down the client (turn off the polling) you can simply call the destroy-method. This is typically not required.
unleash.Close()
Built in activation strategies
The Go client comes with implementations for the built-in activation strategies provided by unleash.
- DefaultStrategy
- UserIdStrategy
- GradualRolloutUserIdStrategy
- GradualRolloutSessionIdStrategy
- GradualRolloutRandomStrategy
- RemoteAddressStrategy
- ApplicationHostnameStrategy
Read more about the strategies in activation-strategy.md.
Unleash context
In order to use some of the common activation strategies you must provide a
unleash-context.
This client SDK allows you to send in the unleash context as part of the isEnabled
call:
ctx := context.Context{
UserId: "123",
SessionId: "some-session-id",
RemoteAddress: "127.0.0.1",
}
unleash.IsEnabled("someToggle", unleash.WithContext(ctx))
Development
Requirements:
- make
- golint (go get -u golang.org/x/lint/golint)
Run tests:
make
Run lint check:
make lint
Run code-style checks:(currently failing)
make strict-check
Run race-tests(currently failing):
make test-all