Supported Environments for PubSub+ Messaging APIs

The PubSub+ Messaging APIs are compatible with many different operating systems and platforms.

The following table summarizes the major operating systems and environments supported for each PubSub+ Messaging API. For the complete list of operating systems and platforms supported for each API, see the sections that follow:

Operating System Platform Java1 Java RTO1 JCSMP1 C Go .NET JavaScript2 Node.js3 Python
Windows x86/x86_64 Supported Supported Supported Supported Supported Supported Supported Supported Supported
macOS

x86_64

Supported Supported Supported Supported Supported Supported Supported Supported Supported

ARM (M-Series)

Supported Supported

10.6+

Supported Supported

7.25.0+

Supported

1.3+

Supported

10.23+

Supported Supported Supported

1.7+

Linux

x86

Supported Supported Supported Supported

7.13.0+

Supported Supported Supported Supported Supported

x86_64

Supported Supported Supported Supported Supported Supported Supported Supported Supported

ARM

Supported

Supported Supported

7.25.0+

Supported

1.4+

Supported

10.24+

Supported Supported Supported

1.8+

Alpine Linux x86_64 Supported Supported Supported

7.23.0+

Supported

1.1+

Supported

10.21+

Supported Supported Supported

1.9+

1Java, Java RTO, and JCSMP require any version of a Java Development Kit (JDK) that is in active support for the platform and operating system. Versions 10.23 and later of the PubSub+ JCSMP API rely on the latest supported version of the Netty library as a dependency. For more information about Netty, see netty.io.

2JavaScript works with some browsers. Mobile browsers are not verified. For more information, see the PubSub+ JavaScript API.

3Node.js version 10.15 supports the actively maintained Node.js LTS release lines.

TLS Support

Transport Layer Security (TLS) provides secure connections between PubSub+ Messaging APIs and event brokers. The following table shows which PubSub+ Messaging APIs can establish secure connections to a PubSub+ event broker using different TLS versions. The recommended version to use is the most recent version of TLS.

The PubSub+ Messaging APIs now support TLS 1.3 connections when connecting to event brokers that request TLS 1.3, allowing you to prepare your client applications in advance. Full end-to-end testing capabilities will be enabled with the upcoming event broker release 10.25.0, planned for June 2025. For more information, see Support Dates for Release Versions. After 10.25.0 is available, you can then perform end-to-end testing and deployment of TLS 1.3.

TLS Version Java Java RTO JCSMP JMS C Go .NET JavaScript Node.js Python

TLS 1.2

Supported Supported Supported Supported Supported Supported Supported Supported Supported Supported

TLS 1.3

(Requires event broker version 10.25+,

which is planned for June 2025)

Supported

1.8+

Supported

10.9+

Supported

10.27+

Supported

10.27+

Supported

7.33+

Supported

1.10+

Supported

10.28+

Supported

10.18+

Supported

10.18+

Supported

1.10+

In the API specific sections below, each environment that supports client connections to the event broker using Transport Layer Security (TLS) / Secure Sockets Layer (SSL) encryption is indicated. When the term TLS/SSL is used in this documentation, we are referring to these forms of data encryption.

Secure Socket Layer (SSL) protocol version support varies for each API. We don't recommend that you use SSL unless it's required for backwards compatibility.

Debugging TLS 1.3 Connections

TLS 1.3 encrypts handshake messages, not just application data, and enforces perfect forward secrecy, which prevents decryption even with server private keys. These security enhancements make traditional packet capture analysis methods ineffective. To effectively debug TLS 1.3 traffic, you must log encryption keys to a file during runtime. These keys can then be used with tools like Wireshark to decrypt and inspect the encrypted communications. We recommend the following based on which PubSub+ Messaging API you use:

  • C, Go, Java RTO, Python, and .NET APIs—You can set the SSLKEYLOGFILE environment variable before creating a session, which allows you to capture pre-master secrets. For more information, see Wireshark TLS Decryption Using Key Log File.
  • JCSMP, JMS, and Java APIs—You can use tools that extract shared secrets from secure TLS connections.
  • JavaScript and Node.js APIs—You can use the --tls-keylog-file option in Node.js, which logs TLS session keys to a file. For more information, see Node.js TLS Keylog File Option - CLI Documentation.

The following sections describe the supported environments for each PubSub+ Messaging API:

Each environment that supports client connections to the event broker using Transport Layer Security (TLS) / Secure Sockets Layer (SSL) encryption is indicated. When the term TLS/SSL is used in this documentation, it refers to these forms of data encryption. Depending on the PubSub+ Messaging API:

  • Support for different Transport Layer Security versions vary for each API. The versions available are TLS 1.0, TLS 1.1, and TLS 1.2. The recommended version to use is the most recent version of TLS.
  • Secure Socket Layer (SSL) protocol version support varies for each API. We don't recommend that you use SSL unless it's required for backwards compatibility.

Most PubSub+ Messaging APIs support various Linux environments for desktops and servers but do not support Alpine Linux. Alpine Linux is built with musl-c, which is typically used for containerized environments or microcontroller devices.  The PubSub+ Messaging APIs are built with glibc, which are typically used for Linux ( both desktop and server) environments. See appropriate API section on this page to determine whether Alpine Linux (musl-c) is supported.

PubSub+ Java API

For more information about the supported environments for the PubSub+ Messaging API for Java, see Supported Environments for the PubSub+ Java API in the developer's guide for the PubSub+ Java API.

PubSub+ Java RTO API

The PubSub+ Messaging API for Java RTO is compatible and supported with any version of the Oracle JDK or OpenJDK that is in active support and also has security update support. For information about supported versions, see the Oracle Java SE Support Roadmap. The PubSub+ Java RTO API is compatible with the following systems:

  • Linux variants (x86/x86_64)  that are in active support and also have security update support
    • Compatible with glibc 2.17 and later (desktop/server)
    • supports TLS/SSL connections
  • macOS [x86_64 versions and ARM (M-Series processors)] that are in active support and also have security update support
    • supports TLS/SSL connections
  • Windows (x86/x86_64), that are in active support and also have security update support
    • supports TLS/SSL connections

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

  • for macOS and Windows, all versions of the PubSub+ Java RTO API
  • for Linux, versions 10.7 and earlier of the PubSub+ Java RTO API

Your JVM and Java RTO architecture must both be 32-bit or both be 64-bit.

The Java RTO API can be retrieved using Maven (pom.xml) or Gradle (build.gradle).

For example, using Maven:

<dependencies>
  <dependency>
    <groupId>com.solacesystems</groupId>
    <artifactId>solclientj</artifactId>
    <version>10.9.0</version>
    <type>pom</type>
  </dependency>
</dependencies>

Using Gradle:

...
...
dependencies {
//PubSub+ Messaging API Dependencies
implementation group: 'com.solacesystems', name: 'solclientj', version: '10.9.0'
...
}

PubSub+ JCSMP API

For more information about the supported environments for the PubSub+ Messaging API for JCSMP, see Supported Environments in the developer's guide for the PubSub+ JCSMP API.

PubSub+ C API

Support for Solaris/SunOS is now deprecated and the last release was v7.23.0 (September 2022). For more details, see the Deprecated Features list on the product lifecycle policy page.

The PubSub+ Messaging API for C, version 7.33.0 is compatible with the following systems:

  • AIX 6 PowerPC (64-bit), supports TLS/SSL connections
  • Linux (x86/x86_64) variants that are in active support and also have security update support. Compatible with glibc 2.17 and later (desktop/server) and musl-c 1.2 and later (Alpine Linux)
    • supports TLS/SSL connections
  • Linux (ARM) variants (linux-arm64) that are in active support and also have security update support
    • Compatible with glibc 2.17 and later (desktop/server) only
    • supports TLS/SSL connections
  • macOS [x86_64 and ARM (M-Series processors)] 
    • supports TLS/SSL connections
  • SunOS10-i386 (32-bit)
    • compatible with glibc 2.17 and later
  • SunOS10-x86 (64-bit)
    • compatible with glibc 2.17 and later
  • SunOS10-sparc (32-bit and 64-bit versions)
    • compatible with glibc 2.17 and later
  • SUSE Linux PowerPC (Big Endian) (64-bit)
    • supports TLS/SSL connections
  • Windows (32-bit and 64-bit versions) that are in active support and also have security update support, and use Microsoft Visual Studio 2015 and later
    • supports TLS/SSL connections
  • iOS 7.1 (ARMv7, ARMv7s, ARM64, i386 and x86_64), for Xcode 5.1 and later
    • supports TLS/SSL connections
  • iOS 8 (ARM v8, ARMv7, ARMv7s, ARM64, i386 and x86_64), for Xcode 6.0 and later
    • supports TLS/SSL connections
  • OpenVMS 8.4-2 and later (64-bit version only, Itanium processors). The C API for OpenVMS supports the same features as the C API for Linux, with the following limitations:
    • 64-bit version only (no support for 32-bit version)
    • Itanium processors only (no support for Alpha processors)
    • Provided as a VMS shared library only (no support for static linking)
    • No support for Kerberos
    • No support for IPC

The PubSub+ C API is compatible with OpenSSL 3.0 and OpenSSL 1.1. The OpenSSL binaries bundled with the Windows and macOS distributions of the PubSub+ C API are provided for developer convenience only. Do not deploy the OpenSSL binaries from the PubSub+ C API in production environments. The OpenSSL binary is not bundled with the Linux distribution of the PubSub+ C API. The support for OpenSSL is as follows:

  • Versions 7.12-7.24 support both OpenSSL 1.0 and OpenSSL 1.1 binaries.
  • Versions 7.25 and later support OpenSSL 3.0 (recommended). OpenSSL 1.0 and 1.1 may be used, but are unsupported by OpenSSL. See the documentation for your operating system to determine if older versions are secure and supported.
  • Versions 7.12 and later support TLS SNI (Server Name Indication).

PubSub+ Go API

For more information about the supported environments for the PubSub+ Messaging API for Go, see Supported Environments in the developer's guide for the PubSub+ Go API.

PubSub+ .NET API

The PubSub+ Messaging API for .NET is compatible and supported with any version of the .NET framework that is in active support and also has security update support. For information about supported versions of .NET, see https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core. The PubSub+ .NET API, version 10.28 is compatible with the following platforms:

  • Windows (32-bit and 64-bit versions) that are in active support and also have security update support.
    • supports TLS/SSL connections
  • .NET Core support is as follows:

    • Windows
    • macOS [x86_64 versions and ARM (M-Series processors)]
    • Linux (x86/x86_64) variants that are in active support and also have security update support.
      • Compatible with glibc2.17 and later (desktop/server) and musl-c1.2 (Alpine Linux)
    • Linux (ARM) variants that are in active support and also have security update support.
      • Compatible with glibc2.17 and later (desktop/server)

The PubSub+ Messaging API for .NET supports:

  • .NET Framework 4.6.2 and later
  • .NET 6.0
  • .NET 8.0
  • .NET Standard 2.0 and later

The PubSub+ Messaging API for .NET supports the following Visual Studio versions:

  • Windows
    • Visual Studio 2022
    • Visual Studio 2019
    • Visual Studio 2017, versions 15.3 and later
    • Visual Studio 2015, requires NuGet 3.6 and later
  • macOS
    • Visual Studio for Mac, versions 7.1 and later

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

  • for macOS and Windows, all versions of the PubSub+ .NET API
  • for Linux, versions 10.24 and earlier of the PubSub+ .NET API

PubSub+ JavaScript API

The PubSub+ Messaging API for JavaScript, version 10.18 supports mainstream browsers. Support includes the latest versions of modern web desktop browsers such as Google Chrome, Safari, Firefox, Edge, and Internet Explorer. Other web and mobile browsers are expected to function properly, but no formal testing has been performed.

The PubSub+ JavaScript API has not been formally testing with any other JavaScript platforms other than Node.js (see PubSub+ Node.js API). For example, the React Native platform has been found to have compatibility issues with the PubSub+ JavaScript API.

JavaScript Feature and API Support

The PubSub+ JavaScript API is expected to be compatible and integrate with common JavaScript frameworks, although framework compatibility has not been formally tested.

Some common JavaScript API features are not available in all web browsers. For example, WebSocket support is not available in all versions of Internet Explorer (in this case, the PubSub+ Messaging API for JavaScript falls back on a transport protocol that is supported by the browser in use).

PubSub+ Node.js API

The PubSub+ Messaging API for Node.js, version 10.18 and later, supports the actively maintained Node.js platform LTS release lines.

PubSub+ Python API

For more information about the supported environments for the PubSub+ Messaging API for Python, see Supported Environments for the PubSub+ Python API in the developer's guide for the PubSub+ Python API.