I am pleased to announce v3.0.1 of http-multipart-formdata. This release follows a major overhaul of the parser as well as the design of the library. Here is the summary of changes:
Flatten module Part_header to part_header
Implement reader/pull based parser to retrieve multipart parts, i.e. implement a streaming design. This is very useful if the HTTP file upload is large.
Implement push-based incremental input model, i.e. the library is now a non-blocking multipart parser
Remove dependency on IO based libs such as lwt, async since it is no longer needed due to point 3 above.
One obvious difference among the three is http-multipart-formdata doesn’t depend on any IO/Promise libraries, such as lwt or async. so you may find it easier to integrate in your project.
mulitpart-form-data exposes a callback based streaming api, whereas http-multipart-formdata exposes a non-callback, non-blocking based streaming API.
The API surface of http-multipart-formdata is kept as low as possible, primarily 3 API calls - boundary, reader and read call.
The dependency list of http-multipart-formdata is the thinnest. This may or may not be an issue depending on your aesthetics. However, relatively/comparatively the less your dependencies, the easier it is to integrate the lib with other OCaml libs and environments such as various OSes.