Questions
- Is the SDK open source?
- No. It is source available. You can read the source and use it under the terms of the licence, but you may not modify it or distribute a modified version.
- Can I evaluate it without a commercial licence?
- Yes. The licence allows you to use the unmodified SDK outside production, and to pass on exact copies of it. Evaluating the SDK needs no agreement with reduktive.
- Can a university or a hobbyist use it?
- Yes, provided the work is not directed towards commercial advantage or payment. There is no separate academic or hobbyist licence; the same terms cover it.
- Can I modify the SDK?
- No. You may not change the source or distribute a changed version. Your own code is not affected by this: software that stays separate from the SDK, and only calls or links against its interfaces, is not a modification of it.
- Can I use the prerelease in commercial production?
- No. Commercial production use needs a separate written licence from reduktive, and none are issued for prerelease versions. Commercial licensing will follow once the product is formally released.
- Is the prerelease production-ready or certified?
- No. It is for evaluation. APIs and capabilities may still change, and reduktive does not claim it is production-ready or certified for industrial use.
- Which platforms are supported?
- Linux and Windows, built with GCC, Clang, or MSVC. The SDK needs an application-class processor with a memory-management unit and a full operating system — embedded Linux on an ARM Cortex-A, for example. QNX, INTEGRITY, and VxWorks are expected to be suitable, but no port has been completed or validated. Bare-metal systems and microcontrollers such as Cortex-M are not targets.
- Which compiler versions are required, and why are they so recent?
- GCC 13, Clang 19, or MSVC 19.50 (Visual Studio 2026) to build the SDK. The floor is set by C++20 coroutine code generation: each version is the first that fixes a defect where an older compiler accepts coroutine code and runs it wrongly. The SDK refuses to configure on an older compiler rather than build something known to be incorrect. The requirement binds only the compiler that builds the SDK. The coroutine code is private to the implementation, so an application that links an installed SDK needs a C++20 compiler that is ABI-compatible with the one that built it, which is the ordinary rule for any static library. Every current platform the SDK claims already ships a compiler at or above the floor.
- Why is the SDK built on C++20 coroutines?
- Because an asynchronous operation written as one linear function is easier to read, to review, and to get right than the same operation spread across a chain of callbacks, and in an SDK that faces the network that is a security benefit as much as a correctness one. Everything an operation holds lives in one coroutine frame, so cancellation and shutdown destroy it in one place, no callback arrives after teardown, and an error escaping a step reaches the caller by one path. Symmetric transfer resumes the waiting task directly, with no post through the executor per step, which is faster than a posted callback chain. The uniform shape also lets continuous integration check safety rules mechanically rather than by review. The SDK uses standard C++20 only, with no third-party coroutine runtime.
- What documentation is available?
- A C++ API reference, generated from the public headers. The repository README covers installation, the four build routes, and running the test suite, and each of the twenty-eight example programs has its own README. A three-volume user guide, Programming OPC UA in Modern C++, will be available shortly: on this website, as a free ebook, and in print from Amazon.
- When will PubSub be available?
- OPC UA PubSub is planned for Q1 CY2027, after the stable v1.0.0 release planned for Q4 CY2026.
- How do I report a problem or a suspected vulnerability?
- Use GitHub Issues for bug reports and evaluation feedback; keep them factual and free of source code. Do not open a public issue for a suspected vulnerability — email security@reduktive.com instead.
These answers describe the licence; they are not the licence. Where the two differ, the licence text controls.
