08/04/2021: tag version S2OPC_Toolkit_1.1.0


  • Linux (tested with Debian 9)
  • Make (tested with GNU Make version 4.2.1)
  • CMake (tested with CMake version 3.9.4)
  • GCC (tested with GCC version 10.2.0)
  • Check library (tested with version 0.14.0)
  • Mbedtls library (tested with version 2.16.10)
  • Python3 (tested with version 3.6.3)
  • Expat (tested with version 2.2.10)

Available features, limitations and constraints

see Readme.md


New features:

  • Ticket #765: PyS2OPC: Add a server API to the Python wrapper
  • Ticket #768: Client/Server: Add default user manager instance based on an XML file
  • Ticket #788: PubSub: add security and MQTT features
  • Ticket #813: Server: add a high level frontend API to configure and run server
  • Ticket #838: (partial): PubSub: add PubSub TSN support


  • Ticket #733/#758 : Client wrapper: Change connect API to avoid duplicated configuration creation
  • Ticket #735: Use __atomic in sopc_atomic.h functions implementation when available
  • Ticket #742: PubSub: add data structures for real time bare metal API
  • Ticket #789: PubSub: allow to use static security data by setting WITH_STATIC_SECURITY_DATA
  • Ticket #798: ClientHelper: add access to call service
  • Ticket #801: Common: move enum OPC UA types in separate module to avoid unecessary dependencies
  • Ticket #806: ClientHelper: add utility functions to clear the results of each service
  • Ticket #818: Server Configuration: add a tool to merge address spaces models in XML format
  • Ticket #820: Client wrapper: allow PKI without CA defined and provide certificate in GetEndpoints


  • Ticket #481: SOPC_Buffer_ReadFile returns unexpected error code when reading an empty file
  • Ticket #748: Demo PubSub server: An assertion is raised if PubSub configuration file is not found
  • Ticket #751: PubSub: Change PubSub printf logs by SOPC_LoggerTrace
  • Ticket #755: Minor fixes in sopc_encoder.c
  • Ticket #757: Minor fixes and enhancements after version 1.0.0
  • Ticket #764: UACTT tests configuration: update expired certificates
  • Ticket #766: Logger: level set to INFO automatically and user defined level ignored
  • Ticket #767: Windows SOPC_Thread_Create implementation: incorrect use of mbstowcs_s
  • Ticket #770: SOPC_S2OPC_Config_Clear: fix possible NULL dereference
  • Ticket #781: CMake: S2OPC dependency on mbedtls library defines incorrect library names (- Ticket #782: Native windows build not detecting expat) => reverted, fixed by using expat CMake build >= 2.2.10
  • Ticket #784: SOPC_strtoint/SOPC_strtouint fixes: unexpected overflow behavior and unsupported 64 bits integer on windows
  • Ticket #790: PyS2OPC: error raised when reading a node value of type UtcTime (DateTime)
  • Ticket #797: ClientHelper: read service should provide decoded ExtensionObject when possible
  • Ticket #800: (partial): ClientHelper: minor fixes
  • Ticket #807: (partial): PubSub: change function pointer type provided as parameter (clarity)
  • Ticket #808: Documentation: fix several issues in source code documentation
  • Ticket #814: Client frontend: client wrapper headers are not installed in include directory
  • Ticket #821: PKI provider: allow no root issuer is defined in case of self-signed issued certificates
  • Ticket #828: Publisher scheduler: PublishingInterval of messages is not correctly enforced
  • Ticket #829: PubSub: minor fixes
  • Ticket #831: SOPC_Thread_Create (POSIX): Avoid invalid thread name error when creating thread
  • Ticket #837: (partial): PubSub: avoid subscriber stopping when receiving unstructed bytes (or signed from another security group)
  • Ticket #841: (partial): PubSub: DoubleBuffer refactoring
  • Ticket #843: log manager minor bugfixes: possible memleak and NULL dereferences