Releases: open62541/open62541
v0.2
We are delighted to announce open62541 v0.2, the first of a new release series.
open62541 (http://open62541.org) is an open source and free implementation of OPC UA (OPC Unified Architecture). open62541 is a C-based library (linking with C++ projects is possible) with all necessary tools to implement dedicated OPC UA clients and servers, or to integrate OPC UA-based communication into existing applications. The library is distributed as a single pair of header and source files, that can be easily dropped into your project.
open62541 is licensed under the Mozilla Public License v2.0. So the open62541 library can be used in projects that are not open source. However, changes to the open62541 library itself need to published under the same license. The plugins, as well as the server and client examples are in the public domain (CC0 license). They can be reused under any license and changes do not have to be published.
The most important changes compared to the v0.1 release series are as follows.
- Support for methods (Call service)
- Support for datachange subscriptions
- Support for chunking (messages larger than the maximum packet length)
- Support for the generation of namespaces from xml nodeset definitions
- Support for object- and variabletypes (with constructor/destructor callbacks, child elements are created upon instantiation)
See also the following link for a list of the supported features: https://github.com/open62541/open62541/blob/0.2/FEATURES.md
We aim at a quality release. The following measures were taken to assure the quality of this release.
- Zero errors indicated by the official compliance testing tools (CTT v1.2.336.256) for the supported features
- Zero issues indicated by the unit tests (more than 80% coverage)
- Zero compiler warnings under GCC/Clang compilation with very strict compilation flags
- Zero memleaks or uninitialized memory indicated by Valgrind and AddressSanitizer / MemorySanitizer during the CTT tests, unit tests and fuzzing
- Zero bugs indicated by the Clang static code analysis
- Zero bugs indicated by the Coverity static code analysis
The release can be downloaded on our homepage (http://open62541.org) or directly on the Github release page (https://github.com/open62541/open62541/releases). The core maintainers and the overall open62541 community can be reached via Github issues and on the mailing list.
With best regards,
the open62541 core maintainers
0.2-rc2
This is the second release candidate of what will become open62541 v0.2.
open62541 (http://open62541.org) is an open source and free implementation of OPC UA (OPC Unified Architecture). open62541 is a C-based library (linking with C++ projects is possible) with all necessary tools to implement dedicated OPC UA clients and servers, or to integrate OPC UA-based communication into existing applications. The library is distributed as a single pair of header and source files, that can be easily dropped into your project. An example server and client implementation can be found in the /examples directory or further down on this page.
open62541 is licensed under the LGPL with a static linking exception. So the open62541 library can be used in projects that are not open source. However, changes to the open62541 library itself need to published under the same license. The plugins, as well as the server and client examples are in the public domain (CC0 license). They can be reused under any license and changes do not have to be published.
ATTENTION: We intend to change the license of open62541 to the MPLv2 (https://www.mozilla.org/en-US/MPL/2.0/). The terms of the MPLv2 are very close to the LGPL with our nonstandard static linking exception. Using an (unmodified) established license has advantages for our end-users. For example, open62541 could be used by projects within the Eclipse Foundation. Past committers were notified of the intended change. If you are a past committer and do not agree with the change to MPLv2, please make contact within the coming weeks.
The most important changes compared to the 0.1 branch are as follows.
- Support for methods (Call service)
- Support for datachange subscriptions
- Support for chunking (messages larger than the max packet length)
- Support for the generation of namespaces from xml nodeset definitions
- Support for object- and variabletypes (with constructor/destructor callbacks, child elements are created upon instantiation)
The most important changes compared to the previous release candidate v0.2-rc1 are as follows.
- Support for chunking in the client
- Improved object instantiation rules
- Improved type checking for variable and variable type nodes
- Improved nodeset compiler
- Many improvements to the code and documentation
We aim at a quality release. While we cannot make any formal guarantees, we are transparent on the measures taken to assure quality. The final v0.2.0 release will have the following properties.
- Zero warnings under GCC/Clang compilation under very strict compilation flags
- Zero errors indicated by the official compliance testing tools (CTT v1.2.336.256) for the supported features
- Zero issues indicated by the unit tests
- Zero crashes / hangs found with the afl fuzzing tool
- Zero memleaks or uninitialized memory indicated by Valgrind and AddressSanitizer / MemorySanitizer during the CTT tests, unit tests and fuzzing
- Zero bugs indicated by the Clang static code analysis
- Zero bugs indicated by the Coverity static code analysis
v0.2.0-RC1
This is the first release candidate of what will become
open62541 v0.2.0 The release of v0.2.0 is expected after a stabilisation and
extended testing period of about 4 weeks.
open62541 (http://open62541.org) is an open source and free implementation of
OPC UA (OPC Unified Architecture). open62541 is a C-based library that contains
all the necessary tools to set up a dedicated OPC UA server or client, or to
integrate OPC UA-based communication into existing applications. open62541
implements the OPC UA communication stack, as well as server and client
functionality in about 12.000 lines of code (excluding generated
type-definitions, plugins and examples). Server binaries can become as small as
75kb.
open62541 is licensed under the LGPL with an additional static linking
exception. That means open62541 can be used in commercial projects without
affecting code that uses the library. However, changes to the open62541 library
itself need to be released under the same license. The plugins in the /plugins
directory, as well as the server and client implementations in the /examples
directory are in the public domain (CC0 license). They can be used under any
license and changes don't have to be published.
The most important changes compared to the 0.1 branch are as follows.
- Support for methods (Call service)
- Support for datachange subscriptions
- Support for chunking (messages larger than the max packet length)
- Support for the generation of namespaces from xml nodeset definitions
- Support for object- and variabletypes (with constructor/destructor callbacks,
child elements are created upon instantiation) - Increased performance
- Improved documentation
We aim at a quality release. While we cannot make any formal guarantees, we are
transparent on the measures taken to assure quality. The final v0.2.0 release will
have the following properties.
- Zero warnings under GCC/Clang compilation under very strict compilation flags
- Zero errors indicated by the official compliance testing tools (CTT
v1.2.336.256) for the supported features - Zero issues indicated by the unit tests
- Zero crashes / hangs found with the afl fuzzing tool
- Zero memleaks or uninitialized memory indicated by Valgrind and
AddressSanitizer / MemorySanitizer during the CTT tests, unit tests and
fuzzing - Zero bugs indicated by the Clang static code analysis
- Zero bugs indicated by the Coverity static code analysis
With effect immediately, the 0.2 branch is marked as the default branch on
Github. Users who do not indicate a specific branch will see/checkout the stable
release. Please switch accordingly if you are currently working on master. The
master branch is used for ongoing development.
v0.1.1
This is the first maintenance release of open62541 in the 0.1 release series. The open62541 library is implemented in about 8000 lines of C99 code. It provides all the features required to create custom OPC UA servers and clients. This release provides stability improvements, as well as minor functional improvements that arose from issues reported by end users. New features, such as method calls and subscriptions, will be subject to the upcoming 0.2 release.
The most important changes since v0.1 are as follows:
- Improved renewal of SecureChannels
- The server can be driven from an external mainloop. This allows existing application to provide an OPC UA interface without multithreading (e.g. in embedded settings)
- Fixed edge cases for session handling and the encoding of ExtensionObjects
v0.1
After nearly 18 month of development, we are proud to release version 0.1 of the open62541 OPC Unified Architecture stack. This first milestone release implements the OPC UA nano embedded profile and is fully compliant with official testing tools of the OPC Foundation.
The main library is implemented in only 8000 lines of C99 code. It provides all the features required to create custom OPC UA servers and clients. The server is suitable for embedded devices and compiles to about 85kB of ROM and requires 60 kB of RAM. On the other hand, it is highly scalable due to the multi-threading support implemented with lock-free data structures. This unique feature combination combined with a liberal open source license makes it usable for industrial communication solutions from the shop floor to the ERP level.
We thank the developers from the involved universities, TU Dresden University, Fraunhofer IOSB, and RWTH Aachen University as well as individuals who were contributing code and bug reports to the project.
Next on our roadmap are remote method calls, message chunking, subscriptions and security.
v0.1.0-RC4
The last Release Candidate before releasing version 0.1 which is expected on 11.05.15, a week before the OPC Europe Day 2015.
We are in the code-freeze phase right now: use your chance to test the RC and to submit your bugs or comments to the bugtracker.
New features:
- Passing tests of Conformance Testing Tool of the OPC Foundation for Embedded Device Nano Profile
- Further hardening
Since RC3:
- continuation points in server
- client has read, write, browse
- user/password access in server
Since RC2:
- demo of a client application (just execute exampleClient as long as exampleServer is running)
- single-file distribution of open62541 (open62541.c and open62541.h) as a drop-in for your projects
v0.1.0-RC3.3
- continuation points in server
- client has read, write, browse,
- user/password access in server
- 64-bit binaries for Windows
New features since RC2:
- A demo of a client application (just execute exampleClient as long as exampleServer is running)
- A single-file distribution of open62541 (open62541.c and open62541.h) as a drop-in for your projects
New features since RC1:
- Minor fixes include hardening of the client that can handle message fragmentation now
v0.1.0-RC2
The new major features are:
- A demo of a client application (just execute
exampleClient
as long asexampleServer
is running) - A single-file distribution of open62541 (
open62541.c
andopen62541.h
) as a drop-in for your projects
Changes since v0.1.0-RC1:
- Minor fixes include hardening of the client that can handle message fragmentation now
v0.1.0-RC1
The new major features are:
- A demo of a client application (just execute
exampleClient
as long asexampleServer
is running) - A single-file distribution of open62541 (
open62541.c
andopen62541.h
) as a drop-in for your projects
v0.0.0-150309
This new release includes new demo servers with read/write callbacks.