A general-purpose serialization facility for Dart Objects.
This provides the ability to save and restore objects to pluggable Formats using pluggable Rules. These rules can use mirrors or be hard-coded. The main principle is using only public APIs on the serialized objects, so changes to the internal representation do not break previous serializations. It also handles cycles, different representations, filling in known objects on the receiving side, and other issues. It is not as much intended for APIs using JSON to pass acyclic structures without class information, and is fairly heavweight and expensive for doing that compared to simpler approaches.
For more detailed descriptions and examples of use, see the comment on the serialization library.