Opendnp3 is the de facto reference implementation of IEEE-1815 (DNP3) provided under the Apache License.



  • Apache licensed (no cost)
  • Conformance tested using most recent test revisions
  • Optimized to run on resource constrained embedded systems
  • Non-blocking, event-driven architecture that scales to OS limits
  • Multi-core support for large frontends and device simulations
  • Simple, consistent programming model that lowers time to market




  • Proven solution with many production deployments
  • Unit test coverage in excess of 90%
  • Industry leading security and robustness
  • Type-safe API that is both safe and easy to use



DNP3 Decoder

Input is a LPDU

Input is a TPDU

Input is an ASDU

Customer Testimonials

"We have recently started using opendnp3 to replace the previous library that we used in our DNP3 master driver. We are very impressed with the functionality, usability and performance of the library."

"I'd really like to use opendnp3 instead if possible, not only because it doesn't cost $15k each for the master/outstation components, but because it's so much nicer to use!"

"I'm quite impressed with how robust this library is in dealing with such a horribly implemented device. It looks like I'm going to have to have a long talk with the people that manufacture the box."

"From our initial prototypes our impressions are very positive; the code is well structured, easy to read and the system looks like it will scale much better."

"We have found the Automatak C++ opendnp3 implementation invaluable in our DNP3 master and outstation simulations focused on cybersecurity. A single easy-to-use client can simulate either master or outstation and multiple peers can use the same compiled program to support end-to-end testing."

Commerical support

Need help? GRID I/O can provide commercial support.

  • Hourly-based support
  • Contract software engineering services to integrate opendnp3 into your products
  • On-site dnp3 consultation and training
  • Security and conformance testing on opendnp3 or 3rd party products

Let's work together


11 + 6 =