/sep2_common

A Rust library for building IEEE 2030.5 Clients & Servers

Primary LanguageRustApache License 2.0Apache-2.0

SEP2 Common Library

sep2_common is a (WIP) Rust library for developing IEEE 2030.5 compliant servers & clients.

It can be used with sep2_client, which provides a framework for developing IEEE 2030.5 clients.

Documentation

Contents

sep2_common - Implementation of IEEE 2030.5 data types

sep2_common_derive - Rust Procedural Macros providing inheritance-based interfaces on IEEE 2030.5 data types

Core Features

  • Rust Types for practically all IEEE 2030.5 Resources, Types & Primitives.
  • XML Serialising & Deserialising all resources using SEPSerde
  • Rust enums for all applicable integer types.
  • Bitflags for all HexBinary\d+ bitmaps for improved ergonomics
  • Rust Traits for all re-used IEEE 2030.5 base types
    • Common Interface for manipulating List Resources
  • Rust Procedural Macros to derive these traits on the appropriate types.
  • [De]?serialising sanity tests (auto-generated)
  • Function Set List Ordering
  • CSIP-AUS Extension Resources & Attributes
  • Correctness / Spec Adherence Tests

Future

  • EXI Serialising & Deserialising all resources (Requires a Rust EXI Library)

License

Licensed under either of

at your option.

Contribution

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