ThingWorx Edge SDKs Support Matrix
  
ThingWorx Edge SDKs Support Matrix
ThingWorx Edge Software Development Kits (SDKs) enable partners and customers to develop applications for edge devices to communicate with ThingWorx Platform over the ThingWorx binary, WebSocket-based AlwaysOn protocol, while adding their own device connectivity implementation. Each SDK handles creating the communication socket to ThingWorx Platform and the binding of an edge device to the corresponding remote thing on ThingWorx platform. The SDKs support two-way property read/write, two-way service execution, event propagation, and file transfers. The SDKs also support tunneling for remote sessions with edge devices. The SDKs are offered for various programming languages, namely C, .NET, and Java. The hardware/software requirements vary by language.
This topic summarizes the requirements for developing applications using the ThingWorx Edge SDKs and deploying them. It is intended for use by all ThingWorx customers and can be used to ensure their end users understand system requirements for applications deployed directly in or on assets in their organizations. This topic provides hardware, operating systems, and software components suggested for use with the ThingWorx Edge SDKs and your applications.
Releases Covered in this Topic
ThingWorx Edge C SDK, v.2.2.0 through v.2.2.11
ThingWorx Edge Java SDK, v.6.2.0
ThingWorx Edge .NET SDK, v.5.8.0, v.5.8.1, and v.5.8.2
* 
If you are looking for older releases than those listed, refer to the PTC Product Calendar on the PTC Support site. When support for the older releases has expired, they are no longer listed in this support matrix.
Hardware Sizing Recommendations
The following table shows the minimum recommendations for hardware sizing requirements. Actual sizing depends on the components and usage. For CPU hardware information, refer to the table in the next section.
Edge SDKs Hardware Sizing Recommendations
SDK
Memory
Disk Space
Notes
C SDK
256 KB RAM
~110 KB Flash
Depends on components used
The basic Steam Sensor example with file transfer is ~300 KB and requires 32 KB RAM
.NET SDK
~1 MB
Requires a .NET 4.5.2 Assembly
Java
4.6 MB
Requires Oracle JDK 7 or Oracle JDK 8
Software Requirements
ThingWorx releases versioned updates to the Edge SDKs and certifies product quality through rigorous testing of these products with the ThingWorx Platform. Unless otherwise specified within this document, backward compatibility for the Edge SDKs such that combinations of later versions of the Edge SDKs with earlier versions are supported.
The following table shows the operating system, hardware, and toolchain requirements for the SDKs. Use the CMake v.3.4 or later compiler, or any compiler that is compatible with your IDE. CMake provides a toolchain extraction.
Supported Operating Systems, Hardware, and Toolchains for Edge SDKs
SDK
Operating System
Architecture
Toolchain
Notes
C SDK
Windows 10, 8.1 and 7.
Tested on Windows 10
Windows x86/64
Visual Studio 2012, 2015, 2017
Platform must provide TCP/IP stack, dynamic memory allocation (malloc, calloc, free), and some form of mutex or pinlock mechanism.
Linux
Tested on Ubuntu 18.04.3 LTS
Linux 32–bit
GCC 3.4.x or higher / GLIBC
Linux
Tested on Ubuntu 18.04.3 LTS
Linux 64–bit
GCC 3.4.x or higher / GLIBC
Linux
Tested on Raspbian Linux 9.1
Linux ARM HWFPU
GLIBC
.NET SDK
Windows 10, 8.1, and 7.
Tested on Windows 10
x86 / 64-bit
Visual Studio 2012, 2013, and 2017
Uses Apache log4net
Java SDK
Windows 10, 8.1.
Tested on Windows 10
64-bit only
Any IDE that supports Oracle JDK 7 or Oracle JDK 8
Tested with ThingWorx 8.3.0-b278
Linux
Tested on Ubuntu 16_04.2 Linux x86_64 and on Ubuntu 18.04.2 LTS
Linux 64-bit
Any IDE that supports Oracle JDK 7 or Oracle JDK 8
SSL/TLS Compatibility for the Edge SDKs
The following table lists OpenSSL versions supported by the various releases of the Edge SDKs:
OpenSSL Compatibility
Edge SDK Version
AxTLS 2.1.2?
OpenSSL Version
FIPS?
C SDK 1.5.0 and 1.5.1
Yes
1.0.1h, only in FIPS distribution bundle of the SDK
Yes, for Windows Only
C SDK 2.0.x, 2.1.x, and 2.2.0
Yes, but no longer the default library
1.0.1L, now the default library
Yes, for Windows and Linux
C SDK 2.2.1
No
1.0.2q
This version of OpenSSL does not support FIPS. However, the OpenSSL library that supports FIPS is included in the distribution bundle.
C SDK 2.2.2, 2.2.3, and 2.2.4
No
1.0.2r
This version of OpenSSL does not support FIPS. However, the OpenSSL library that supports FIPS is included in the distribution bundle.
C SDK 2.2.5 through 2.2.11
No
1.1.1c
No. This version of OpenSSL is the only one provided in v.2.2.5 through 2.2.11 of the C SDK. It does not support FIPS.
.NET SDK 5.7.0 through 5.7.5
Yes
1.0.1L, Only with FIPS / Windows distribution bundle
Yes
.NET SDK 5.7.6
Yes, but no longer the default library
1.0.1L
Yes
.NET SDK 5.8.0
No
1.0.1r
No
.NET SDK 5.8.1 and 5.8.2
No
1.1.1c
No
Java SDK 6.0.x
No
No. Use the Java Secure Socket Extension (JSSE).
No
Java SDK 6.1.0
No
No. Use the Java Secure Socket Extension (JSSE).
No
Java SDK 6.2.0
No
No Use the Java Secure Socket Extension (JSSE).
No
* 
While OpenSSL 1.1.1 includes TLS 1.3, the ThingWorx Platform does not use a version of the JDK that supports TLS 1.3. It will not work in Edge SDK applications that communicate with the ThingWorx Platform.
Cipher Suite Support
The older versions of the C SDK and .NET SDK support the following cipher suites:
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_RC4_128_MD5
Starting with OpenSSL v.1.1.1 and the associated releases of the C and .NET SDKs, cipher suites supported by OpenSSL are supported by these SDKs.
The Java Secure Socket Extension (JSSE) and the versions of the C and .NET SDKs that support OpenSSL 1.1.1 support more than 36 cipher suites. You should not find any issues in SSL/TLS communication with the ThingWorx Platform.
* 
The Client and Server SSL handshake fails when the Server does not support the cipher suites supported by the Edge SDK In this situation, overall communication fails, and the Edge devices do not bind to the ThingWorx Platform.
Compatibility with ThingWorx Platform
PTC will provide standard support for the current version (Major.Minor.Patch) of a ThingWorx Edge SDK, provided it is connecting to a supported version of the ThingWorx Platform. To ensure that your SDK application is connecting to a supported version of ThingWorx Platform, refer to the PTC Product Calendar on the PTC Support site.
The following table shows the versions of ThingWorx Platform supported by each Edge SDK.
Compatibility with ThingWorx Platform
SDK
Versions
ThingWorx Platform Versions
C SDK
2.2.x
8.3.x, 8.4.x, 8.5.x
Tested on 8.5.3-b123
.NET SDK
v.5.8.1, v.5.8.2
8.3.x, 8.4.x, 8.5.x
Tested on 8.5.3-b123
Java SDK
v.6.2.0
8.3.x, 8.4.x, 8.5.x