| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| 2025.09.25 source code.tar.gz | 2025-09-25 | 36.0 MB | |
| 2025.09.25 source code.zip | 2025-09-25 | 36.4 MB | |
| README.md | 2025-09-25 | 3.6 kB | |
| Totals: 3 Items | 72.4 MB | 2 | |
This release introduces a major architectural overhaul, replacing the std::variant-based Tag system with a type-erased, polymorphic message_ptr. This fundamental change refactors the entire data pipeline—including parsers, exporters, filters, and core components—to emit rich, structured document events, simplifying the data flow and making it easier to add new data types. Alongside this, a new high-performance http::server is introduced, allowing developers to expose any processing pipeline as a standalone HTTP/HTTPS microservice with TLS support.
The pipeline's heart, a message new and bright,
Where docs and mail now dance in polymorphic light.
A server hums, where pipelines run as one,
This grand refactor shines, a new day has begun.
🚀🔧🏗️
- Features
-
HTTP Server: Added a high-performance
http::serverclass with HTTPS/TLS support. This allows any processing pipeline to be easily exposed as a standalone microservice via a path-to-pipeline mapping, enabling powerful and scalable data processing endpoints. -
Improvements
- HTTP Post Content-Type: The
http::Postcomponent now automatically sets theContent-Typeheader for multipart form data based on the MIME type of the inputdata_source, simplifying API integrations. -
Enhanced vcpkg Feature Parsing: The build system's vcpkg feature parsing has been improved to handle more complex, object-based, platform-specific feature definitions.
-
Refactor
- Polymorphic Message System: Replaced the core
std::variant-basedTagsystem with a type-erased, polymorphicmessage_ptracross the entire data pipeline. This major architectural change affects all parsers, exporters, filters, and core components, enabling them to emit rich, structured document events and simplifying the addition of new data types. - Reorganized Element Types: Decoupled and reorganized all document, mail, and AI element types into separate, more logical header files (
document_elements.h,mail_elements.h,ai_elements.h,attributes.h) for better code organization. - Abstracted XML Parsing Options: Refactored the XML parser to use a dedicated
XmlStream::no_blanksstruct for configuration, improving clarity over raw integer flags. -
Unified Transformer API: Updated
TransformerFuncandStandardFilterto use the newmessage_transform_func, aligning custom pipeline elements with the new message-based API. -
Fixes
- MSVC Compilation: Resolved a compilation failure on MSVC by parenthesizing
std::minto avoid conflicts with the Windowsminmacro and added the/bigobjcompiler option to handle heavily templated libraries. -
RTTI Issues on macOS: Added visibility attributes to core document, mail, and AI elements to fix RTTI-related issues on macOS.
-
Build
- Dependency Change: Replaced
curlppwithcpp-httplibandOpenSSLto support thehttp::Postandhttp::servercomponents. -
CI Update: Removed the deprecated
macos-13runner from the GitHub Actions workflow. -
Documentation
-
Updated
README.mdand all examples to use the newmessage_ptrAPI. -
Tests
- End-to-end HTTP Server Tests: Added new integration tests to validate client-server pipeline processing for both HTTP and HTTPS using the new
http::server. - API Migration: Migrated the entire test suite to use the new
message_ptrAPI, including the addition of custom GTest matchers for easier and more readable assertions.