
cparse ships as source. 1.2.0.0 is the first public release — previously cparse lived only as an embedded dependency of downstream projects (fson, UMTSM), with no standalone distribution point.
Each archive contains the source tree — headers, implementation, examples, CMake build files, the Conan recipe, and the license. test/ is not part of it; clone the repository instead if you want to build and run the test suite. Extract and follow the installation guide; nothing beyond a C++20 compiler and CMake 3.20+ is required to build it.
Binary packages (.deb, .rpm) are on the roadmap but need a proper APT/YUM repository to be useful — that infrastructure will land in a later ffs component. The CMake tree already produces both locally via CPack (cpack -G DEB or -G RPM in a standalone build directory), the same way it produces the API reference's docs target.
sha256sum -c cparse-1.2.0.0.tar.gz.sha256
# cparse-1.2.0.0.tar.gz: OK
Then extract and follow the installation guide.
1.2.0.0 — first public release. The library as it stands after the consumers that motivated it (fson, UMTSM): Cursor (stream position, line/column tracking, save/restore), Parser (recursive-descent driver, error collection), Generator and Indentation (code-generation helpers). Two things worth calling out for anyone updating from an embedded copy:
Parser gained an opt-in open-scope counter (enterScope() / leaveScope() / openScopeDepth(), see Reference › Parser › enterScope) so a grammar with nesting can tell a clean end-of-input from one that landed mid-construct — a file cut short at a member boundary used to load as valid with the missing half silently defaulted. Purely additive: a grammar that never calls these behaves exactly as before.Cursor no longer aborts. The constructor armed its exception mask before opening the file, so any unopenable path — including the default empty filename — threw out of the constructor instead of leaving isValid() false, as documented.