Crate dnp3

source · []
Expand description

Step Function I/O

Commercial library by Step Function I/O

DNP3

Rust implementation of DNP3 (IEEE 1815) with idiomatic bindings for C, C++, .NET, and Java.

Features

  • Subset Level 3 master and outstation components in a single library

  • Written in safe Rust with idiomatic bindings for C, C++ .NET Core, and Java.

  • Supports TCP, TLS, and serial communication channels

  • TLS is implemented using rustls not openssl.

  • Automatic mapping between DNP3 and higher-level measurement types

  • Built-in logging and protocol decoding

  • Blazing fast (and secure) zero-copy / zero-allocation parsing of application data

  • Fully asynchronous implementation scales to the OS limit.

  • Runs on all platforms and operating systems supported by the Tokio runtime:

    • Official support for: Windows x64 and Linux x64, AArch64, ARMv7 and ARMv6
    • Unofficial support: MacOS, PowerPC, MIPS, FreeBSD, and others

License

This crate is made available under a non-commercial / non-production license. Refer to LICENSE.txt for the terms of the non-commercial license.

This software is publicly available, but is not “open source”. You must purchase a commercial license to use this software for profit.

Please inquire about commercial licensing on our website:

https://stepfunc.io/contact/

Modules

application layer types shared by both the master and outstation APIs

types used to control decoding in the log

Types specific to the link-layer

Types and traits specific to masters

Types and traits specific to outstations

Entry points and types for serial

Entry points and types for TCP

Constants

Current version of the library