No httpd header dependencies in src/; those go in env/. Only APR is used here. Data structures and relations: BASIC VALUE TYPE: apreq_value_t: basic type for handling opaque data. The type is meant to be extended by placing all "metadata" in front (within a larger structure). COOKIES: apreq_cookie_t: extends apreq_value_t to represent server-side cookie data. apreq_jar_t: A pool and a table with cookie-based copy/merge functions. This struct is analogous to apreq_request_t for params. PARAMS: apreq_param_t: extends apreq_value_t to represent POST param data. apreq_request_t: maintains arg/body tables which represent parsed data. REQUEST STATES: req->body == NULL: No POST data has been read/parsed yet. At this point, req->v.data holds a pointer to the parser table. req->body != NULL: req->v.data now points to the active parser. status: (as returned by apreq_env_read) APR_INCOMPLETE: Parsing in progress. APR_SUCCESS: Parsing complete. : parser error, parsing aborted. PARSER EXTENSIONS: apreq_parser_t: parser callback, with its associated configuration data. apreq_hook_t: extends multipart/form-data parser by transforming incoming brigades which represent the contents of a file upload.