Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A Rust library for building IEEE 2030.5 Clients

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
NotificationsYou must be signed in to change notification settings

ethanndickson/sep2_client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

crates.ioGitHub repo size

sep2_client is a (WIP) Rust library for developing IEEE 2030.5 compliant clients on Linux1 based operating systems.

It relies on, and should be used alongside, thesep2_common crate, and it's implementation of the IEEE 2030.5 XSD.

This crate uses async rust, and currently only supports thetokio runtime.

Documentation

Contents

sep2_client - Implementation of an IEEE 2030.5 Client Library, including documentation & examples

sep2_test_server - Dumb IEEE 2030.5 Server for testing

docs - Thesis Project Reports & Seminars

Progress

Core Features

  • Application Support Function Set (TCP, HTTP)
  • Security Function Set (TLS + Certificate Verification, HTTPS)
  • IEEE 2030.5 Base Client Capabilities (GET, POST, PUT, DELETE)
  • Asynchronous Resource Polling
  • Notification / Subscription Client Server Mechanism
  • Global Time Offset (Server Time Sync)
  • Event Scheduler
    • DER
    • DRLC
    • Messaging
    • Pricing
    • Per-Schedule Time Offset
  • Tests / Documentation
    • IEEE 2030.5 Examples as System Tests
    • Event Scheduler Tests
    • Subscription/Notification Tests
    • DER Non-Aggregate Client Sample Impl.
  • Australian CSIP Extensions

Future

Examples

A client that synchronises it's time with the server:

use sep2_client::{client::Client, time::update_time_offset};use sep2_common::packages::{dcap::DeviceCapability, time::Time};#[tokio::main]asyncfnmain(){// Create a HTTPS client for a specific serverlet client =Client::new_https("https://127.0.0.1:1337","client_cert.pem","client_private_key.pem","serca.pem",// No KeepAliveNone,// Default Poll Tick Rate (10 minutes)None,).expect("Couldn't create client");let dcap = client.get::<DeviceCapability>("/dcap").await.expect("Couldn't retrieve dcap");let time_link =&dcap.time_link.unwrap();let time = client.get::<Time>(&time_link.href).await.unwrap();// Sync client timeupdate_time_offset(time);}

More comprehensive examples can be found in thesep2_client/examples directory.

Cargo Features

Features can be enabled or disabled through your crate's Cargo.toml

[dependencies.sep2_client]features = ["der","pubsub"]

Full list of features

  • default: All mandatory IEEE 2030.5 Client function sets. Application Support, Security & Time.
  • event: A Generic Event Schedule interface
  • der: A Scheduler for DER Function Set Events
  • pricing: A Scheduler for Pricing Function Set Events
  • messaging: A Scheduler for Messaging Function Set Events
  • drlc: A Scheduler for DRLC Function Set Events
  • pubsub: A lightweight server for the Subscription / Notification function set.
  • csip_aus: CSIP-AUS Extensions
  • all: All of the above

Dependencies

Due to the security requirements of IEEE 2030.5, this library only supports TLS using OpenSSL.To use this library you will require a local installation of OpenSSL with support forECDHE-ECDSA-AES128-CCM8.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionallysubmitted for inclusion in the work by you, as defined in the Apache-2.0license, shall be dual licensed as above, without any additional termsor conditions.

Footnotes

  1. The library happens to performs as expected on macOS. If you would like to test the client locally on macOS, ensureopenssl does not refer tolibressl, as is the case by default.

About

A Rust library for building IEEE 2030.5 Clients

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Languages


[8]ページ先頭

©2009-2025 Movatter.jp