1 unstable release

0.1.0 Mar 19, 2024

#20 in #ieee

27 downloads per month
Used in 2 crates (via sep2_common)

MIT/Apache

19KB
436 lines

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.

Dependencies

~1.5MB
~37K SLoC