Cbor enhanced library

Actions Status Crate API

Inspired by cbor_event but making use of lifetimes to support zero copy deserialization. In addition several iana tags are supported but need to be activated via feature flags.

Supported tags

|Tag |Description |Implementation notes| |------------------|--------------------------|--------------------| |64-82 |Typed arrays |Either direct transmution for the brave or safe parsing for the cautious| |80, 81, 82, 85, 86|Typed float arrays |Either direct transmution for the brave or safe parsing for the cautious, f16 is only supported in big-endian format| |260, 261 |Network address |Direct de/serialization of network address |0, 1, 1001 |DateTime |Directly de/serialize chrono date time types with defined precision |2, 3 |BigInt, BigUint |Directly de/serialize num_bigint BigInt, BigUint |37 |Uuid |Directly de/serialize uuid using uuid crate |35 |Regex |Directly de/serialize regex using regex crate |36 |Mime type |Directly de/serialize mime types using mime crate |103 |Geographic Coordinate |Directly de/serialize geographic coordinates

Limits

Features

Derive macro

Deriving cbor_protocol enables you to serialize/deserialize a struct into a Map Where the keys for the map are the property id's. The derive macro requires nightly for posiioned compile error reporting.

```rust

[derive(cbor_protocol, Clone, Eq, PartialEq, Debug)]

[reserved(5, 6, 7)]

struct BlaStruct { #[id(1)] #[default("none")] name: String, #[id(2)] value: i32, } ```

License

MIT and Apache