A header-only C++ library for parsing .INI configuration files, designed for simplicity and embedded systems.
inih is a header-only C++ library for parsing .INI configuration files. It provides a simple, lightweight solution for reading application settings from INI files, with compatibility to Python's ConfigParser style. The library is designed to be minimal and suitable for embedded systems where resource constraints are a concern.
C++ developers working on embedded systems, lightweight applications, or projects that require simple configuration file parsing without external dependencies.
Developers choose inih for its header-only design, which simplifies integration, and its focus on being small and simple, making it ideal for environments where code size and complexity matter. It offers a straightforward API with type-safe accessors while maintaining compatibility with common INI file formats.
This is a header only C++ version of inih.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Simply include the header file without separate compilation, as shown in the usage example with 'g++ INIReaderTest.cpp', making setup quick and dependency-free.
Designed to be small and simple, with a lightweight codebase optimized for embedded systems and resource-constrained environments, per the project's philosophy.
Supports Python-style INI files, including RFC 822 multi-line syntax and 'name: value' entries, easing migration from Python configurations.
Provides methods like GetInteger(), GetReal(), and GetBoolean() for safe value retrieval, reducing type errors in configuration handling.
The README only demonstrates reading INI files, with no mention of writing or modifying configurations, limiting use in dynamic settings.
Missing advanced parsing features such as support for nested sections, comments preservation, or integration with modern C++ standards like STL containers.
As a C++ library, it cannot be used directly in C or other language projects, restricting cross-language compatibility despite the original inih being in C.