Skip to content

OpenEnergyStack/iec61850

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IEC 61850 Library

A high-performance Rust library for encoding and decoding IEC 61850 GOOSE and Sampled Values (SMV) messages. !The library is under development!

About The Project

This library provides efficient Rust implementations for IEC 61850-8-1 (GOOSE) and IEC 61850-9-2 LE (Sampled Values) protocols. It features:

  • sampled value encoding
  • sampled value decoding
  • GOOSE encoding
  • GOOSE decoding

It also gives you most common client functionality:

  • Server discovery
  • Polling of data values
  • Reporting
  • Control capabilities

Installation

Add this to your Cargo.toml:

[dependencies]
iec_61850_lib = { git = "https://github.com/OpenEnergyTools/iec61850lib.git" }

Or clone and build locally:

git clone https://github.com/OpenEnergyTools/iec61850lib.git
cd iec61850lib
cargo build --release

Documentation

Topic Description
GOOSE Encoding and decoding IEC 61850-8-1 GOOSE frames
Sampled Values (SMV) Encoding and decoding IEC 61850-9-2 LE SMV frames
Client Async client: data access, reports, and control services
Benchmarking Performance analysis and benchmark methodology

Running Benchmarks

You can check performance with your hardware:

# Run all benchmarks
cargo bench

# Run specific benchmark
cargo bench --bench smv_decode
cargo bench --bench goose_codec

Running Tests

The library includes comprehensive unit tests (68+ tests):

# Run all tests
cargo test

# Run specific test
cargo test test_roundtrip_extreme_values

# Run with verbose output
cargo test -- --nocapture

Copyright

Copyright © 2025-2026 Jakob Vogelsang. All rights reserved.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages