go icon indicating copy to clipboard operation
go copied to clipboard

XML support

Open ugorji opened this issue 9 years ago • 1 comments

go-codec currently supports

  • Binary: Msgpack
  • Binary: CBOR
  • Text: JSON

For completeness, it should support XML also.

Though XML has fallen out-of-favor, it is still widely used. The encoding/xml in the standard library is not efficient, and does not conform to the simplicity used in encoding/json. We have a chance to add a performant XML encoder/decoder as just another format.

We are attempting this due to perceived issues with encoding/xml:

  • Complicated. It tried to do too much, and is not as simple to use as json.
  • Due to over-engineering, reflection is over-used AND performance suffers: java is 6X faster:http://fabsk.eu/blog/category/informatique/dev/golang/ even PYTHON performs better: http://outgoing.typepad.com/outgoing/2014/07/exploring-golang.html

codec framework will offer the following benefits

  • VASTLY improved performance (when using reflection-mode or codecgen)
  • simplicity and consistency: with the rest of the supported formats
  • all other benefits of codec framework (streaming, codegeneration, etc)

go-codec is not a drop-in replacement for encoding/xml, as the tags and style will not transfer over. Having said that, it is a replacement, based on the simplicity and performance of codec.

The goal is for this to be like JAXB for Go.

ugorji avatar Oct 29 '15 12:10 ugorji

+1. This could get us up to a 7% speedup in the Scope probes without making any investments since we are already using your library and codecgen.

2opremio avatar Feb 23 '16 07:02 2opremio