Comparison of ASN.1 tools

Comparison of Abstract Syntax Notation One (ASN.1) libraries and tools.

This table provides basic comparisons for ASN.1 tools, including their licenses, the runtime they support, the possibility to compile ASN.1 descriptions into runtime-compatible code, and the support for transfer encodings.

Name

License

Runtime

Compiler

Support for BER and/or DER

Support for PER

OSS ASN.1 Tools (OSS Nokalva, Inc.)

Proprietary

C, C++, C#, Java

|

ASN1C Compiler (Objective Systems, Inc.)

Proprietary

C, C++, C#, Java

|

Asn1Compiler (uniGone)

Proprietary

Java, C#

|

MARBEN ASN.1 Tools (Marben Products)

Proprietary

C, C++, Java

|

ffasn1c

Proprietary

C

|

asn1c

BSD

C

C

asn1scc

GPL, runtime exception

C, Ada

F#, ANTLR

snacc

GPL

C

C, C++

eSNACC

GPL

C, C++

C

III ASN.1

Mozilla

C++

C++

libtasn1

LGPL

ANSI C99

C

pyasn1

BSD

Python

asn1ate (Python)

dpkt

BSD

Python

none

pycrate

GPL

Python

Python

asn1tools

MIT

Python

Python

python-asn1

MIT

Python

Python

ASN1js

BSD

JavaScript

none

asn1js

MIT

JavaScript

none

node-asn1

MIT

JavaScript

none

ASN1.js

MIT

JavaScript

none

ASN.1 S

MIT

Java8

Java8/Antlr4

jASN1

LGPL

Java

Java

openASN.1

LGPL

Java

Java

asn1forj

GPL

Java

|

JAC

GPL

Java

|

JASN

GPL

Java

|

Binary Notes

Apache

Java, .NET

XSLT

Convert::ASN1

Artistic

Perl

|

arc

BSD

Java

javacc/Java

Cryptix

BSD

Java

SableCC

Legion of The Bouncy Castle

MIT, MIT X11

Java, C#

none

Apache Harmony

Apache

Java

Erlang ASN.1

Apache

Erlang

Erlang

GCDC ASN.1

Apache

Java

none

|

OCaml ASN.1 combinators

ISC

OCaml

|

phpseclib: ASN.1 Parser

PHP

tlve

Apache

C

IvmaiAsn

GPL

Java

Erlang asn1ct

Apache

Erlang