🍺 BREW Explorer

← all formulae

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

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[![Tests](https://github.com/benhoyt/inih/actions/workflows/tests.yml/badge.svg)](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
}