DEV Community

Cover image for DocWire SDK New Release: Turning Pipelines into Secure HTTP Services
Krzysztof Nowicki
Krzysztof Nowicki

Posted on

DocWire SDK New Release: Turning Pipelines into Secure HTTP Services

DocWire SDK New Release: Turning Pipelines into Secure HTTP Services

We’re excited to announce a major new release of the DocWire SDK — and this one opens a completely new way to use DocWire in your applications.

At its core, DocWire has always been about high-performance document and data processing in C++. In this release, we’ve gone a step further:

  • We replaced the internal std::variant-based Tag system with a new polymorphic message_ptr architecture, simplifying the data flow and making it easier to extend.
  • And more importantly for many developers: we’ve introduced a built-in HTTP/HTTPS server that lets you expose DocWire pipelines as secure microservices.

Why the new HTTP server matters

Traditionally, to use DocWire you had to embed it directly into your C++ application. That works great — but many modern systems are moving toward service-oriented and cloud-native architectures.

With the new http::server class, you can now:

  • Expose any pipeline as a REST-like API: for example, mount a PDF-to-JSON parser at /parse/pdf.
  • Call DocWire from any language: Python, Java, Go, or even curl — if it can talk HTTP, it can use DocWire.
  • Scale horizontally: deploy pipelines behind a load balancer, containerize them with Docker/Kubernetes, and scale on demand.
  • Secure endpoints with TLS: essential for finance, government, and healthcare workloads.

This turns DocWire from a C++ library into a full-fledged data processing service framework.


A simple example

Let’s say you want to parse incoming PDF documents and expose the output as JSON through an API. With the new server:

docwire::http::server server;
server.add_pipeline("/parse/pdf", my_pdf_to_json_pipeline);
server.listen(8080, true); // true enables TLS
Enter fullscreen mode Exit fullscreen mode

That’s it — now any client can POST a file to /parse/pdf and get structured JSON back.


What else is new in this release

Besides the HTTP server and the new polymorphic message system, we’ve included a number of improvements and fixes:

  • HTTP Post Content-Type: automatically set based on the input MIME type, making API integrations easier.
  • Enhanced vcpkg parsing: now supports more complex platform-specific feature definitions.
  • Reorganized element headers: document, mail, and AI element types are now separated for clarity.
  • Refactored XML options: dedicated XmlStream::no_blanks struct improves readability.
  • Unified transformer API: updated to the new message-based flow.
  • MSVC fixes: resolved min macro conflicts, added /bigobj for heavy templates.
  • macOS fixes: addressed RTTI visibility issues.
  • Dependencies: replaced curlpp with cpp-httplib and OpenSSL.
  • CI update: removed deprecated macos-13 runner.
  • Docs & tests: full migration to message_ptr, new end-to-end HTTP server integration tests.

Why this matters for developers

This release is not just about features — it’s about flexibility.

  • If you’re building monolithic C++ applications, you get a cleaner, more extensible architecture.
  • If you’re moving to microservices and distributed systems, DocWire now fits directly into that model.
  • If you need cross-language integration, the HTTP server makes DocWire accessible anywhere.

We believe this is a big step toward making DocWire SDK not just a C++ library, but a platform for data processing at scale.


Get started

The release is available now on GitHub: https://github.com/docwire/docwire/releases/tag/2025.09.25

As always, we welcome feedback, questions, and contributions from the community.

  • The DocWire Team -

Top comments (0)