1 unstable release
0.1.0 | Mar 19, 2024 |
---|
#20 in #ieee
27 downloads per month
Used in 2 crates
(via sep2_common)
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.
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
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
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