Я рассматриваю интеграцию синтаксического анализа составных данных формы в модуль веб-сервера, чтобы я мог избавить серверные веб-приложения (часто написанные на динамических языках) от синтаксического анализа самих составных данных. Составная грамматика (RFC 2046) выглядит нетривиально, и если я реализую ее вручную, многое может пойти не так. Есть ли уже хороший, легкий анализатор multipart/form-data, написанный на C или C++? Я ищу тот, у которого нет внешних зависимостей, кроме стандартной библиотеки C или C++. Мне не нужна обработка вложений электронной почты, буферизованные классы ввода-вывода, среда выполнения с переносимостью или что-то еще, мне нужен только синтаксический анализ multipart/form-data.
Вещи, которые я рассмотрел:
- GMime - зависит от бойкости, так что не пойдет.
- libapreq — слишком большой, зависит от APR, плохо документирован, без модульных тестов.
Я также рассматривал возможность написания синтаксического анализатора с помощью Ragel, но не могу понять, как это сделать, потому что грамматика не статична: граница может изменяться произвольно.