This repository is a Go SDK for the Redis Cloud REST API.
You can use this module by using go get to add it to either your GOPATH workspace or
the project's dependencies.
go get github.com/RedisLabs/rediscloud-go-apiThis is an example of using the SDK
package main
import (
"context"
"fmt"
rediscloud_api "github.com/RedisLabs/rediscloud-go-api"
"github.com/RedisLabs/rediscloud-go-api/service/subscriptions"
)
func main() {
// The client will use the credentials from `REDISCLOUD_ACCESS_KEY` and `REDISCLOUD_SECRET_KEY` by default
client, err := rediscloud_api.NewClient()
if err != nil {
panic(err)
}
id, err := client.Subscription.Create(context.TODO(), subscriptions.CreateSubscription{
// ...
})
if err != nil {
panic(err)
}
fmt.Printf("Created subscription: %d", id)
}The repo ships a Nix flake that pins the toolchain (Go, golangci-lint, gotools, govulncheck, GNU make) so local development matches CI. Combined with direnv, your shell automatically enters that environment when you cd into the repo.
- Install Nix with flakes enabled — the Determinate Nix Installer is the easiest option; the official Nix installer works too but requires enabling flakes manually.
- Install direnv and hook it into your shell.
- Install nix-direnv so direnv can load the flake's dev shell.
- From the repo root, activate the environment:
direnv allow
Every subsequent cd into the repo brings up a shell with the pinned toolchain on PATH. Run make to execute the same checks CI runs.
Releases are published as Git tags of the form vX.Y.Z, so Go consumers pull a
specific release with go get github.com/RedisLabs/rediscloud-go-api@vX.Y.Z.
Tagging is automated on merge to main, using the Tag Release workflow. The Version constant in version.go is
the single source of truth for the release number.
To cut a release:
- Bump
Versioninversion.go(e.g.0.51.0→0.52.0). - Make sure there is a matching entry in
CHANGELOG.md. - Open a PR and merge it into
main.