markdown_lib exports functions useful for use in libraries. Right now there's only two: markdown_to_stream and markdown_to_string. These functions handle the parsing the input into a tree and generating the appropriate output. Also worth noting is bufopen.c: this is a light implementation of a stdio FILE stream on top of a character buffer. The bufopen function takes a pointer to a char pointer and returns a FILE pointer. When the FILE is closed, a pointer to the underlying buffer is set at the address provided when bufopen was called. bufopen is very similar to GNU's open_memstream function but requires only that the platform support funopen, which is non-standard but widely implemented (according to Google).