|
@@ -33,11 +33,6 @@ open62541 implements the OPC UA binary protocol stack as well as a client and se
|
|
|
- Code-Generation
|
|
|
- Support for generating data types from standard XML definitions
|
|
|
- Support for generating server-side information models (nodesets) from standard XML definitions
|
|
|
-- Code quality checks
|
|
|
- - Every commit checked with continuous integration and unit tests (code coverage > 80%)
|
|
|
- - Memory leak detection using Valgrind (Linux) and DrMemory (Windows)
|
|
|
- - Static code analysis with cpp-check and clang static code analysis
|
|
|
- - Fuzz testing with [oss-fuzz](https://github.com/google/oss-fuzz)
|
|
|
|
|
|
Features currently being implemented:
|
|
|
- Target 0.3 release (to be released in the coming weeks):
|
|
@@ -48,6 +43,27 @@ Features currently being implemented:
|
|
|
- Event-loop (background tasks) and asynchronous service requests in the client, WIP #1117 #1410
|
|
|
- Publish/Subscribe based on UDP (Specification Part 14), WIP by @jpfr
|
|
|
|
|
|
+### Dependencies
|
|
|
+
|
|
|
+None.
|
|
|
+
|
|
|
+On a more serious note, on most systems, open62541 requires the C standard library only. For dependencies during the build process, see the following list and the [build documentation](https://open62541.org/doc/current/building.html) for details.
|
|
|
+
|
|
|
+- Core Library: The core library has no dependencies besides the C99 standard headers.
|
|
|
+- Default Plugins: The default plugins use the POSIX interfaces for networking and accessing the system clock. Ports to different (embedded) architectures are achieved by customizing the plugins.
|
|
|
+- Building and Code Generation: The build environment is generated via CMake. Some code is auto-generated from XML definitions that are part of the OPC UA standard. The code generation scripts run with both Python 2 and 3.
|
|
|
+
|
|
|
+### Code Quality
|
|
|
+
|
|
|
+We emphasize code quality. The following quality metrics are continuously checked and are ensured to hold before an official release is made:
|
|
|
+
|
|
|
+- Zero errors indicated by the Compliance Testing Tool (CTT) of the OPC Foundation for the supported features
|
|
|
+- Zero compiler warnings from GCC/Clang/MSVC with very strict compilation flags
|
|
|
+- Zero issues indicated by unit tests (more than 80% coverage)
|
|
|
+- Zero issues indicated by clang-analyzer, clang-tidy, cpp-check and the Coverity static code analysis tools
|
|
|
+- Zero unresolved issues from fuzzing the library in Google's oss-fuzz infrastructure
|
|
|
+- Zero issues indicated by Valgrind (Linux), DrMemory (Windows) and Clang AddressSanitizer / MemorySanitizer for the CTT tests, unit tests and fuzzing
|
|
|
+
|
|
|
### Using open62541
|
|
|
|
|
|
A general introduction to OPC UA and the open62541 documentation can be found at http://open62541.org/doc/current.
|