ASN.1 Java Compiler Overview

The ASN.1 Java Compiler Tools package consists of a compiler and a set of feature-rich runtime jar files. The compiler maps ASN.1 types into Java classes. The runtime library facilitate encode, decode and various other operations on application messages.

The ASN.1 Java Runtime Library is fully metadata-orient, all metadata are loaded at runtime, and freed after usage.

ASN.1 Java Compiler Features

  • The mapping between ASN.1 types and Java classes is quite straightforward and intuitive.

    The ASN.1 Java Compiler generates type as primitive as possible, or plain old Java object (POJO), the mapping between ASN.1 types and Java classes is quite simple and intuitive, so you don't have to learn some special API in order to use these codes. Such minimize your time and effort to get familiar with the generated codes.

  • Customizable mapping type, with callback interfaces in encoding/decoding.

    With scalable converter classes, message can be decoded even without message entity. Application can be customized to get callback when every component of message is been decoded.

  • Fully metadata-oriented, with only metadata and message definition, no extra encoding/decoding codes generated.

    Generates only type-safe Java classes and metadata for ASN.1 types, such minimize the codes generated, resulting a higher code reuse rate.

  • High-speed encoding/decoding with multi-thread support.

    Some assumptions greatly improve the speed of encoding/decoding. Of course these assumptions also pose some limitations.

  • Pure Java implement, can be run on any JVM, including Android Dalvik VM.

    The ASN.1 Java runtime library are written completely in Java and can be run on almost any JVM, including smart phone, PDA, etc.

Known Limitations

  • ASN.1 Development Tools Limitations

    Because ASN.1 Java Compiler extent the ASN.1 Development Tools, it has all the limitations of ASN.1 Development Tools.

  • Tag

    The tag number can't exceed 221-1 but for reasonable ASN.1 specifications this should not be a problem.

  • Length

    The length of enumerated items, bit string, octet string, components or alternatives can't exceed 231-1.


    The value of INTEGER should be in range -263~263-1 (i.e. BigIntegers are not supported). Now support BigInteger in Java SE version.

  • REAL

    The value of REAL is allways encoded/decoded in binary form, the precision should never exceed double type in Java (i.e. BigDecimals are not supported).

  • SET OF

    SET OF value dynamic sort is not supported. It's recommended to use SEQUENCE OF type instead of SET OF type.


Continue to Getting started with the ASN.1 Java Compiler.