nanoxml

Crates.ionanoxml
lib.rsnanoxml
version0.3.2
created_at2025-04-23 08:17:53.44599+00
updated_at2025-09-18 10:32:13.196356+00
descriptionA truly minimal XML (de)serializer
homepagehttps://git.tjdev.de/thetek/nanoxml
repositoryhttps://git.tjdev.de/thetek/nanoxml
max_upload_size
id1645189
size41,989
thetek (thetek42)

documentation

https://git.tjdev.de/thetek/nanoxml

README

nanoxml

A truly minimal XML (de)serializer for Rust.

Features

  • serialization and deserialization of very basic XML (only attributes and elements are supported)
  • derive for (de)serialization of structs and enums (optional)
  • tiny codebase (~400 LoC + optional ~900 LoC for derive)
  • no runtime dependencies
  • no_std
  • optional alloc support
  • optional defmt support
  • optional heapless support
  • UTF-8 only

Derive Attributes

  • #[nanoxml(attr)]: (de)serialize as attribute (i.e. key="value")
  • #[nanoxml(text)]: (de)serialize as text (i.e. content between <tag></tag> without an additional sub-element for the field)
  • #[nanoxml(rename = "xmlname")]: use xmlname as the attribute key or tag name in the XML
  • #[nanoxml(seq)]: must be specified for "sequence" fields (e.g. Vec or array)
  • #[nanoxml(skip_ser)]: skip this field when serializing to XML
  • #[nanoxml(default_de)]: when this field is not present when deserializing the XML, fall back to the Default::default() value
  • #[nanoxml(default_de = "func")]: when this field is not present when deserializing the XML, call func to get a fallback value
Commit count: 0

cargo fmt