TopHome
<2023-03-02 Thu>tech

Everything ASN.1

ASN.1 is the spiritual anscestor of all of the following things: protobufs, cap'n proto, msgpack, thrift, json, xml etc.

ASN.1 is super big in telco, core networking (things like SNMP are built on top of it) etc, but completely unknown in the web/cloud development space. While the complexity and lack of easy to use software are the main reasons, it seems to do so many things right so long before the hip things of the day, that it is worth looking at just to understand the history of this space.

Great introduction slides to the strengths of ASN.1: http://spw18.langsec.org/slides/Tullsen-Safe-ASN1.pdf

One of the things that stood out is the separation of the specification and the encoding format. This allows use of a variety of encoding formats - some binary, some text based - depending on your needs.

The book on ASN: https://www.oss.com/asn1/resources/books-whitepapers-pubs/larmouth-asn1-book.pdf

A lot of modern languages and ecosystems don't really think about ASN.

A rust library: https://github.com/XAMPPRocky/rasn