ELM is a multi-purpose library used by the OTAWA project (http://www.otawa.fr). It provides :
- generic data structures,
- generic interface with te operating system (files, command line, etc),
- a checked plugin system,
- efficient string class,
- other utility classes.
The facilities of ELM (classes, functions, templates, etc) are sorted in the following modules:
- Allocation Module – specialized allocators and interactive garbage collector,
- Checksum Engines – checksum algorithms,
- Data Structures – common generic data structures and associated facilities,
- Dynamic Data – data structure implementation using inheritance and virtual methods,
- Input / Output System – unformatted and formatted input/output classes,
- JSON Module – JSon format ELM implementation,
- Network Module – network access abstraction classes,
- Command Line Options – command line option parsing classes,
- Serialization / unserialization – serialization facilities,
- Character String – character string facilities,
- System Interface – system abstraction facilities (file system, plugin, random number, process management),
- Run-Time Type Information – RTTI type support,
- Type Support – type information and other related functions,
- util – miscellaneous utility classes (including debugging and testing helper classes),
- XOM Module – XML input/output classes.
ELM contains a lot of useful features to make easier the developer life: instead of reading the whole documentation, take a look to Recipes for a short list of more useful features.