I spent a year making an ASN.1 compiler in D
Автор посвятил год созданию компилятора ASN.1 на языке D, но проект всё ещё далёк от завершения. Основной мотивацией стала необходимость реализации TLS для фреймворка Juptune, требующей обработки x.509 сертификатов, использующих кодировку ASN.1 DER. Автор описывает ASN.1 как «protobuf на стероидах» — избыточно сложный язык спецификации данных, созданный в конце 80-х годов, который, тем не менее, повсеместно используется в современных технологиях, несмотря на свою сложность.
Компилятор под названием dasn1 уже способен парсить некоторые x.509 сертификаты, но разработка сопряжена с множеством трудностей. ASN.1 имеет «всё или ничего» уровень сложности, требует реализации ограничений трижды разными способами, а его спецификации содержат много устаревших элементов. Язык D, однако, оказался удобным для генерации кода благодаря статическим импортам, метапрограммированию и шаблонам, которые позволяют создавать естественные API с обнаружением ошибок на этапе компиляции.