Skip to content

Releases: SSARCandy/ini-cpp

v2.0.0 - Rewrite in modern C++17 to get better performance

Choose a tag to compare

@SSARCandy SSARCandy released this 09 Jul 17:09

v2.0.0

Highlights

  • Complete rewrite in modern C++17 — still a single header, same public API
  • Removed the legacy C parser (malloc/fgets/char buffers) and C API (ini_parse*, ini_handler, INI_* macros)
  • Zero-copy parsing with std::string_view; numeric conversion via std::from_chars (auto-fallback on older compilers)

Performance (GCC 13, -O2)

  • Parse: 2.2× faster
  • Get<int> / Get<std::string>: ~100× faster (old version copied the whole section map on every call)
  • GetVector<double>: ~20× faster
  • Peak memory: +8%

Changes

  • No more 2000-char line limit or 49-char section name truncation
  • Breaking: C API removed; duplicate keys with empty first value now throw
  • Fixed: uninitialized _error on default construction; UpdateEntry no longer creates empty entries on failure
  • Tests: 13 → 27 (BOM, CRLF, comment rules, error messages, numeric edge cases, FILE* ctor, writer overwrite)
  • Verified on GCC 7.5–13, Clang 17, MSVC 2019+
  • Docs: API reference added to README; doxygen docs regenerated warning-free; CI bumped to checkout@v4

Full Changelog: v1.2.0...v2.0.0

v1.2.0

Choose a tag to compare

@SSARCandy SSARCandy released this 18 Jun 16:07

What's Changed

New Contributors

Full Changelog: v1.1.0...v1.2.0

Implement INIWriter

Choose a tag to compare

@SSARCandy SSARCandy released this 28 Jul 16:46
  • With the new INIReader::InsertEntry() and INIReader::UpdateEntry(), it is easy to modify the content of a reader.
  • Introduce to new INIWriter, which can dump reader's content to an .ini file.

v1.0.1

Choose a tag to compare

@SSARCandy SSARCandy released this 01 Jun 07:17
a8a35ab
  • feat: make key case sensitive.
  • fix: header guard bug.

v1.0.0 - First release

Choose a tag to compare

@SSARCandy SSARCandy released this 31 May 18:15
doc: update example