Supported Environments for the Solace Go API

The Solace Messaging API for Go is compatible and supported with any version of Go that is in active support and also has security update support. For information about supported versions of Go, see https://go.dev/doc/devel/release. The Solace Go API is compatible with the following platforms:

  • Linux (x86/x86_64) variants that are in active support and also have security update support
    • compatible with glibc (desktop/server) and musl-c (Alpine Linux)
  • Linux (ARM) variants (linux-arm64)
    • compatible with glibc (desktop/server) only
  • Windows WSL 2.0
  • macOS 10.15 and later [x86_64 and ARM (M-Series processors)] 
    • If you use a non-standard OpenSSL installation, you may get an error message that contains ld: library not found for -lssl. This error means the linker cannot locate the OpenSSL library. To correct this, specify a path for OpenSSL with the following command: export CGO_LDFLAGS="-L/path/to/your/openssl@1.1/lib". This command exports the CGO_LDFLAGS variable to a specific OpenSSL distribution to support non-standard OpenSSL installations.

The Solace Go API is not supported on Windows except when using Windows Subsystem for Linux 2.0 (WSL)

Installing the Solace Go API

To retrieve the Solace Messaging API for Go visit: https://pkg.go.dev/solace.dev/go/messaging. Alternatively, you can use the following command in your project directory:

go get solace.dev/go/messaging

This retrieves and installs the latest version of the Solace Go API.

Due to a known issue in Go on Alpine Linux platforms, Solace recommends you only use Go versions up to 1.22.4 with the Solace Go API. Applications that use Go versions 1.22.5 and later may encounter unexpected issues on Alpine Linux environments. For information about this Go issue and its impact, see runtime: update and restore g0 stack bounds at cgocallback.

OpenSSL Compatibility

The Solace Go API is compatible with OpenSSL 3.0 and OpenSSL 1.1. The Solace Go API bundles OpenSSL libraries for developer convenience only, these libraries are unsuitable for production environments. OpenSSL binaries are bundled with the following:

  • for macOS, all versions of the Solace Go API
  • for Linux, versions 1.6 and earlier of the Solace Go API

OpenSSL is required for encrypted (TLS) connections to Solace event brokers. For production environments, we recommend you install OpenSSL directly to ensure that you have the most recent version. To install OpenSSL:

  • Use your preferred package manager for Go.
  • Download, build, and install OpenSSL from www.openssl.org.

TLS and SSL Support

Transport Layer Security (TLS) provides secure connections between Solace Go APIs and event brokers. The Solace Go API supports the following TLS versions. The recommended version to use is the most recent version of TLS:

  • TLS 1.2
  • TLS 1.3—Requires Solace Go API, version 1.10 or later.

In this documentation, the term TLS/SSL refers to Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols used for securing data transmission. We don't recommend that you use SSL unless it's required for backwards compatibility.