Features

Features of MiniINI as of MiniINI 0.9 :

INI parsing

  • Reads most common ini/cfg files, or from user provided buffer containing contents of an ini/cfg file. This allows the user e.g. to load data from a compressed file and pass it to MiniINI.
  • Can read headerless ini/cfg files.
  • Only plain ASCII files are supported. There is no support for Unicode, and there probably never will be.
  • Case-sensitive. That means that [CASE], [case] and [Case] are not the same and there is a difference between Tag= and TAG=
  • Ignores all spaces, i.e. no spaces/tabs in tags or values. For example:
    tag=125685
    and
    t a g = 125 685
    both have the same meaning. Spaces might be supported in the future for values, if there will be a need, but are not planned at the moment.
  • Can read arrays of data from tags with multiple, comma separated values.
  • Can also read arrays from numbered sequences of tags, for example:
    a1=1
    a2=2
    a3=3
  • Cannot write to ini files at this time. This should be implemented in future.

Interface

  • Provides methods to read strings, ints, floats and bools from inifile and checks the ini data for errors, allowing the programmer to use their own default values.
  • Supports both plain strings and arrays and STL strings and vectors. STL functionality can be disabled for more minimalism.
  • Supports iteration over contents of INI files.

Configurability

  • Supports single line comments with a configurable comment character. So if you want to use '#' instead of ';' , you can. There is no support for multiple comment characters at the same time for performance reasons.
  • Name=value separator character is configurable as well, '=' by default.

Documentation

  • Tutorials detailing every feature of the library
  • Maintained API documentation

Performance

  • Extremely fast. Even multi-MB ini files with hundreds or thousands of sections can be processed in fractions of a second.
  • Low memory usage. Data structure overhead is reduced as much as possible.

Debugging

  • Debug build can issue warnings to the user using a callback function specified by the programmer. For example when a tag from which the program tries to load an int contains something else.