based on Abstract Syntax Notation One (ASN.1) and XML standards. It is capable of generating code in four different programming languages: C, C++, Java, and C#. The version 6.6 release adds new capabilites to generate code that is easier to work with and to increase performance in applications that
use this code. The following is a summary of new features:The following is a summary of new features:
+ Capability to Encode/Decode Data in JSON Format
The capability to generate encoders/decoders that support
Javascript Object Notation (JSON) has been added. JSON is a
reasonably simple and compact textual encoding format that is
now being used in many domains where XML was used before.
No formal encoding rule specification exists for JSON, so
we created our own. The document is available
at http://www.obj-
+ Capability to Encode/Decode 3GPP Layer 3 Messages
The capability to encode/decode binary 3GPP layer 3 messages
has been added. These include messages specified in the
Non-Access Stratum (NAS) layer for 3G and LTE. These messages
are not specified in ASN.1 but rather in tabular format and
using Concrete Syntax Notation 1 (CSN.1). However, it was
determined that a fairly close approximation of the messages
could be created in ASN.1 along with a special encoding rules
capability (3G Layer 3) and additional configuration directives
to refine the encoding format. A document on the approach used
to work with these message types is available at
http://www.obj-
+ Open Source Version of C BER/DER Run-time
An open source version of the C BER/DER run-time (ooberrt) has
been added. This is a limited version of our BER/DER run-time
that does not contain all features and is not fully optimized as
is our commercial version. Nonetheless, it may be sufficient
for some applications.
+ Capability to Embed Configuration Directives in ASN.1 Comments
An external XML file was the only method available up until this
release to apply configuration directives to specific ASN.1 types
or elements. It is now possible to embed directives as special
ASN.1 comments immediately precding the item to be configured.
+ Addition of ASN.1 Comments and Type Definitions in C/C++ Header Files
ASN.1 comments as well as the ASN.1 definition itself are now
embedded as comments in generated C/C++ header files for each
generated C/C++ type or class. This makes it easy to see the
ASN.1 definition a generated C structure represents.
+ More Efficient Table Constraint Index Handling
Modified C/C++ code generation of SEQUENCE-based index values
in table constraints to be more efficient (replaced if-else with
switch at each level).
+ Option to Use Enumerated Types in C/C++ Code
A new command-line option, -use-enum-types, has been added which
replaces the integer types that were used to represent enumerated
types with generated enum types. Integers were always used in
the past because the size was known (different C compilers
generated different sized items for enum types) and to account
for the possibility of unknown extensible enumerated items.
This option allows the user to override this behavior and use
the enum type instead.
+ Added support for ASN.1 2008 IRI Type
Support was added for the ASN.1 2008 IRI Type for all
languages. ASN1C now supports all items in the ASN.1 2008
standard with the exception of some Extended-XER encoding
instructions.
For more information on the new release see:
http://www.obj-
A free evaluation version of the software can be downloaded from:
http://www.obj-
This release is available as a free upgrade to users with active support.



