---
title: "Install the Aerospike client"
description: "Install the Aerospike Go client with instructions on prerequisites, setup from GitHub, and running tests."
---

# Install the Aerospike client

> For the complete documentation index see: [llms.txt](https://aerospike.com/docs/llms.txt)
> 
> All documentation pages available in markdown.

## Prerequisites

-   [Go](https://go.dev) version 1.23 or later.

To install Go, see the [Go downloads page](https://go.dev/dl/). Your package manager may also have `go`. To see if `go` is installed and working, run `go version`.

The Aerospike Go client implements the Aerospike network protocols in pure Go, and does not depend on the C client. It is goroutine-safe.

Supported operating systems:

-   Major Linux distributions (Ubuntu, Debian, Red Hat, Amazon)
-   macOS
-   Windows (untested)

## Installation

1.  Install Go 1.23 or later. See the [Go documentation](https://go.dev/doc/install). To confirm that Go is installed and working, run `go version` at the command line.
    
2.  From a Go module, fetch the Aerospike Go client. To install the version used in this guide, run `go get github.com/aerospike/aerospike-client-go/v8@v8.9.0`. To install the latest v8 release, run:
    
    Terminal window
    
    ```bash
    go get github.com/aerospike/aerospike-client-go/v8
    ```
    
    ::: caution
    Do not use v8.8.0. That release was retracted. If you are on v8.7.0 or earlier, upgrade directly to v8.9.0. See [Version 8.9.0](https://aerospike.com/docs/develop/client/go/incompatible/#version-890).
    :::
    
3.  Update the client library:
    
    Terminal window
    
    ```bash
    go get -u github.com/aerospike/aerospike-client-go/v8
    ```
    

## Verify

From your module, confirm the client is on the module graph:

Terminal window

```bash
go list github.com/aerospike/aerospike-client-go/v8
```

The command prints the module path, which confirms the client resolved:

```plaintext
github.com/aerospike/aerospike-client-go/v8
```

If the module is missing, the command fails with a `no required module provides package` error. Run `go get github.com/aerospike/aerospike-client-go/v8` again from inside the module directory.

## Testing

The Ginkgo test suite is optional. You do not need it to install or use the client. Run the tests from a clone of [aerospike-client-go](https://github.com/aerospike/aerospike-client-go), not from `$GOPATH`. The tests use Go modules and Ginkgo v2.

:::danger Destroys data in the target namespace The test suite is destructive. It creates and drops secondary indexes and truncates entire namespaces, not just the sets it creates. The namespace defaults to `test`, so every record in the target cluster’s `test` namespace is deleted.

Point the tests only at a dedicated, empty database that holds no data you need. Never run them against a production cluster, and never against a cluster whose `test` namespace holds real data. Truncation cannot be undone. :::

Install the test runner and download module dependencies:

Terminal window

```bash
go install github.com/onsi/ginkgo/v2/ginkgo@latest

go get github.com/onsi/ginkgo/v2

go get github.com/onsi/gomega

go get .
```

A running Aerospike Database is required. To run all test cases with race detection:

Terminal window

```bash
ginkgo -r -race -- -h 127.0.0.1 -p 3000
```

## Next steps

See [Connecting](https://aerospike.com/docs/develop/client/go/connect).