Crate dnp3

Source
Expand description

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

§Cargo Features

Default features can be disabled at compile time:

  • tls - Build the library with support for mutually authenticated TLS
  • serial - Build the library with support for serial ports

Optional features that may be enabled at compile time:

  • serialize - Add serde de(serialization) support for public configuration types.

§License

This crate is made available under a non-commercial / non-production license. Refer to LICENSE.txt for the terms of this 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/

§Bindings

Bindings in C, C++, java, and .NET Core are available for this library. See the documentation for more details.

Modules§

app
Application layer types shared by both the master and outstation APIs
decode
Types used to control decoding in the log
link
Types specific to the link-layer
master
Types and traits specific to masters
outstation
Types and traits specific to outstations
serial
Entry points and types for serial
tcp
Entry points and types for TCP
udp
Entry points and types for UDP

Constants§

VERSION
Current version of the library