inih
brew install inih
v62
BSD-3-Clause
Simple .INI file parser in C
266
30-day installs · #2336
737
90-day · #2498
4.7k
365-day · #1998
3.0k
★ GitHub stars · updated 6mo ago
Build dependencies
GitHub topics
c
configparser
embedded-systems
ini
parser
Links
- https://github.com/benhoyt/inih
- GitHub: benhoyt/inih
- Brew formula source: Formula/i/inih.rb
Raw metadata
{
"aliases": [],
"alternatives": [],
"build_dependencies": [
"meson",
"ninja"
],
"categories": [],
"caveats": null,
"conflicts_with": [],
"dependencies": [],
"deprecated": 0,
"deprecation_reason": null,
"desc": "Simple .INI file parser in C",
"disable_reason": null,
"disabled": 0,
"enrichment_fetched_at": "2026-06-20T23:38:51+00:00",
"first_seen": "2026-06-20T23:34:18+00:00",
"full_name": "inih",
"github_default_branch": "master",
"github_last_commit_at": "2026-01-30T22:29:05Z",
"github_readme_excerpt": "# inih (INI Not Invented Here)\n\n[](https://github.com/benhoyt/inih/actions/workflows/tests.yml)\n\n**inih (INI Not Invented Here)** is a simple [.INI file](http://en.wikipedia.org/wiki/INI_file) parser written in C. It\u0027s only a couple of pages of code, and it was designed to be _small and simple_, so it\u0027s good for embedded systems. It\u0027s also more or less compatible with Python\u0027s [ConfigParser](http://docs.python.org/library/configparser.html) style of .INI files, including RFC 822-style multi-line syntax and `name: value` entries.\n\nTo use it, just give `ini_parse()` an INI file, and it will call a callback for every `name=value` pair parsed, giving you strings for the section, name, and value. It\u0027s done this way (\"SAX style\") because it works well on low-memory embedded systems, but also because it makes for a KISS implementation.\n\nYou can also call `ini_parse_file()` to parse directly from a `FILE*` object, `ini_parse_string()` to parse data from a string, or `ini_parse_stream()` to parse using a custom fgets-style reader function for custom I/O.\n\nDownload a release, browse the source, or read about [how to use inih in a DRY style](http://blog.brush.co.nz/2009/08/xmacros/) with X-Macros.\n\n\n## Compile-time options ##\n\nYou can control various aspects of inih using preprocessor defines:\n\n### Syntax options ###\n\n * **Multi-line entries:** By default, inih supports multi-line entries in the style of Python\u0027s ConfigParser. To disable, add `-DINI_ALLOW_MULTILINE=0`.\n * **UTF-8 BOM:** By default, inih allows a UTF-8 BOM sequence (0xEF 0xBB 0xBF) at the start of INI files. To disable, add `-DINI_ALLOW_BOM=0`.\n * **Inline comments:** By default, inih allows inline comments with the `;` character. To disable, add `-DINI_ALLOW_INLINE_COMMENTS=0`. You can also specify which character(s) start an inline comment using `INI_INLINE_COMMENT_PREFIXES`.\n * **Start-of-line comments:** By default, inih allo",
"github_repo": "benhoyt/inih",
"github_stars": 3006,
"github_topics": [
"c",
"configparser",
"embedded-systems",
"ini",
"parser"
],
"homepage": "https://github.com/benhoyt/inih",
"homepage_og_description": null,
"homepage_og_image": null,
"homepage_title": null,
"installs_30d": 266,
"installs_365d": 4656,
"installs_90d": 737,
"keg_only": 0,
"keg_only_reason": null,
"last_seen": "2026-06-20T23:34:18+00:00",
"license": "BSD-3-Clause",
"llm_generated_at": null,
"llm_model": null,
"name": "inih",
"oldnames": [],
"one_liner": null,
"optional_dependencies": [],
"rank_30d": 2336,
"rank_365d": 1998,
"rank_90d": 2498,
"raw_hash": "0397225d615812f8",
"recommended_dependencies": [],
"revision": 0,
"ruby_source_path": "Formula/i/inih.rb",
"tap": "homebrew/core",
"test_dependencies": [],
"uses_from_macos": [],
"version_head": null,
"version_stable": "62",
"versioned_formulae": [],
"why_use_this": null
}