voltage_iec104

Crates.iovoltage_iec104
lib.rsvoltage_iec104
version0.1.0
created_at2025-12-19 02:35:17.990291+00
updated_at2025-12-19 02:35:17.990291+00
descriptionIEC 60870-5-104 protocol implementation for Rust
homepage
repositoryhttps://github.com/EvanL1/voltage-iec104
max_upload_size
id1994044
size147,433
(EvanL1)

documentation

README

voltage_iec104

IEC 60870-5-104 protocol implementation for Rust.

Overview

voltage_iec104 is a pure Rust implementation of the IEC 60870-5-104 protocol, commonly used in SCADA systems for telecontrol applications in power systems.

Features

  • Async/await based on Tokio
  • Client implementation for IEC 104 communication
  • Support for standard ASDU types (M_SP_NA, M_DP_NA, M_ME_NA, etc.)
  • Configurable connection parameters
  • Optional tracing support for debugging

Installation

Add to your Cargo.toml:

[dependencies]
voltage_iec104 = "0.1"

Quick Start

use voltage_iec104::{Client, ClientConfig};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let config = ClientConfig::new("192.168.1.100:2404");
    let mut client = Client::new(config);

    client.connect().await?;
    client.start_data_transfer().await?;

    // Receive data...

    Ok(())
}

License

Licensed under either of:

at your option.

Commit count: 0

cargo fmt