ESNACC(1)
π ESNACC β the ASN.1 compiler that SERVES π
okay bestie, sit down, hydrate, because this one is a whole moment. this is the man page for esnacc, and it lives in section 1 of the Development manual. yes queen, we're in compiler territory and it's giving main character energy fr fr. π¦
β¨ NAME β¨
esnacc β an ASN.1 compiler which generates C/C++ code suitable for encoding/decoding BER and PER π
π SYNOPSIS π
esnacc [-h] [-P] [-t] [-v] [-e] [-d] [-p] [-f] [-y] [-M] [-B] [-c] [-C]
[-T table file] [-idl] [-I include directory] [-mm] [-mf] [-mo]
[-l negative number] [-VDAexport=DEFINE_NAME] [-E BER|DER]
[-a start number] [ASN.1 File List]
like... look at that flag list. it ate. no cap. π
πΈ DESCRIPTION πΈ
okay so. esnacc is an enhanced version of the Sample Neufeld ASN.1 C Compiler. iconic lineage, honestly.
what does it do tho? it takes ASN.1 formatted sources and produces C or C++ source code for BER encode and decode routines, plus print and free routines for each type in the given ASN.1 modules. every type gets its little routine glow-up. π«Ά
alternatively β and this is the plot twist β esnacc can produce type tables that can be used for table based/intepreted encoding and decoding. the type table based methods tend to be slower than their C or C++ counterparts, but they usually use less memory (table size vs. object code). so like, pick your fighter: speed or memory. you cannot have both, bestie, that's the vibe check. βοΈ
most of the 1990 ASN.1 features are parsed although some do not affect the generated code. fairly rigorous error checking is performed on the ASN.1 source; any errors detected will be reported (printed to stderr). it WILL tell you. loudly. to stderr. π
each file in the ASN.1 file list should contain a complete ASN.1 module. ASN.1 modules that use IMPORTS feature will be compiled together. the generated source files will include each module's header file in command line order. this means it is important to order the modules from least dependent to most dependent on the command line to avoid type ordering problems. currently, esnacc assumes that each ASN.1 file given on the command line depends on all of the others from the command line. no attempt is made to only include the header files from modules referenced in the import list for that module. (so yes, you gotta order them yourself. it's not gonna read your mind. π)
if the target language is C, esnacc generates .c and .h files. if the target language is C++, esnacc generates .cpp and .h files. slay. π
β¨ OPTIONS β¨
-hβ prints a synopsis ofesnaccand exits. the classic "help me help you" move. it shows you the vibe and then dips. π
π AUTHOR π
Enhanced SNACC was originally written by Michael Sample, but has since been modified by numerous contributors. a true collaborative era, we love to see it. π«Άβ¨
π COPYRIGHT π
Copyright Β© 2016 Aaron Conole
and that's the whole page, bestie!! π this was esnacc version 1.8.1, dated 2016-04-26 β go forth and compile your ASN.1, you absolute legend. ππ¦ no cap, periodt. β
π¦ where this page comes from
- debian bookworm: esnacc 1.8.1-3 Β· GPL-2.0-or-later
- debian trixie: esnacc 1.8.1-5 Β· GPL-2.0-or-later
- ubuntu jammy: esnacc 1.8.1-2 Β· GPL-2.0-or-later
- ubuntu noble: esnacc 1.8.1-3build1 Β· GPL-2.0-or-later
- ubuntu questing: esnacc 1.8.1-5
- ubuntu resolute: esnacc 1.8.1-7 Β· GPL-2.0-or-later
- ubuntu stonking: esnacc 1.8.1-8 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms