I suppose different people have different definitions of "ultralightweight" --- because this is actually quite a bit more complexity than I expected. I thought it would be closer to a SAX-style streamer or a thin layer on top of strstr(). This has its own object model etc.
The code looks incredibly clean and readable, though. I would rate this near my top of "sane C" examples.
Clean? Two C files with 1000+ lines. Not that I read the code but that doesn't show the authors are able to split handle complexity.
I don't think file number / lines of code is a good measure, you can have perfectly readable code in a single file that is 1000s loc. There are plenty single header file libraries that are larger and are very useful. Perfect example is the stb libraries: https://github.com/nothings/stb
very widely used in the C / C++ community.