I spent a year of my life making an ASN.1 compiler in D
7 months ago
- #Compiler
- #D-Language
- #ASN.1
- 作者正在开发一个名为dasn1的工具,这是一款处于开发阶段的ASN.1编译器。
- ASN.1是一种复杂的数据规范语言,广泛应用于各类协议中,包括TLS使用的x.509证书。
- 文章探讨了实现ASN.1的挑战,包括其特殊语法规则和DER等多种编码格式。
- ASN.1语法规范由x.680、x.681、x.682和x.683标准定义,其中x.680是基础语法规范。
- 作者强调了ASN.1的复杂性,包括其多种编码方式和技术文档的晦涩难懂。
- 文中称赞了D语言的静态导入、模块局部查找和typeof()等特性,这些特性极大简化了代码生成工作。
- 通过混入模板和编译时元组等示例,展示了D语言的元编程特性在dasn1项目中的应用。
- 作者表达了对ASN.1语法歧义和规范分散等问题的困扰。
- 尽管存在挑战,作者认为ASN.1的约束特性等设计既有趣又强大。
- 文章最后以幽默口吻总结了ASN.1的开发难度,并调侃了科技行业的招聘现状。