Probably the single biggest 'feature' of the library isn't a DNP3 specific feature at all. Opendnp3 significantly outperforms proprietary implementations of the protocol when it comes to large systems like masters with hundreds or even thousands of concurrent sessions. There are a couple of reasons for this.

Robustness & Security

The principal developers who work on opendnp3 have lead the charge in the industry in terms of security testing DNP3. You won't find a more reliable implementation of the protocol anywhere, even if you pay for it. Our commitment to a high-quality project is evident in what we do.

We provide integrated TLS support that makes opendnp3 an ideal solution for integrating with real-time markets programs like PJM Jetstream.


IEEE-1815 defines 4 subset levels (1,2,3,4) that consist of the objects and function codes that must be supported by master and outstations to claim compliance. A device profile template that describes the supported objects and function codes can be found on the documentation landing page.

Conformance tests only exist for subset levels 1 & 2. Opendnp3 is routinely tested for subset level 2 using 3rd party tools, but you can also configure the library to act as a simple level 1 device. The stack currently meets all the level 2 subset requirements with the notable except of support BROADCAST messages. Very few people actually need this, and it's a questionable feature of the protocol usually not recommended for use anymore.

In addition to Level 2 support, the following features are supported, but not tested since there are no official tests for them currently.

Levels 1-3 (FULL)

Level 4 (PARTIAL)

Functionality not part of any level subset

If your integration requires some functionality not currently implemented, consider sponsoring the additions