Take the 2-minute tour ×

We are looking for a C++ Soap web services framework that support RPC, preferably open source. Any recommendations?

share|improve this question

14 Answers 14

up vote 9 down vote accepted

WSO2 Web Services Framework for C++ (WSO2 WSF/C++), a binding of WSO2 WSF/C into C++ is a C++ extension for consuming Web Services in C++.


Apache Axis is an open source, XML based Web service framework. It consists of a Java and a C++ implementation of the SOAP server, and various utilities and APIs for generating and deploying Web service applications.


share|improve this answer
After trying several different packages we found Axis to be the most comprehensive, easy to use lib. –  Raz Oct 29 '08 at 6:58


Staff is Web Service Framework for C++ (service/component and client-side)/JavaScript(client-side) based on Apache Axis2/C.

Open-source, released with Apache License V2.0.

share|improve this answer
Will this work On linux? –  user1291235 Aug 7 '13 at 17:12

Try the ffead-cpp framework, it provides in-built web-service support, rest, json and many other useful features.

share|improve this answer

You could try gSOAP. Available under GPL and commercial licences.

share|improve this answer

I have used SWIG to make an interface from C++ to Java or Python and then used the typical web interface support for those languages.

Since Java and Python have reflection the web services frameworks that exist for them have a much easier time passing data around.

Threading wise if your C++ code is thread safe you can let the Java server manage the creation of threads for concurrent requests etc. and just call into your C++ code using JNI.

As a bonus you can test your C++ code from Python using these same SWIG interfaces.

share|improve this answer

I think the way to go is to write your service in C++ (I am assuming you did all the homework and there is a good reason you want to write in C++) and then front it using an RPC server. Use something like Thrift or Protobufs for a fast RPC implementation.

Now write your web frontend in the language of your choice - python would be mine - and make RPC calls to do all your heavy lifting.

share|improve this answer

POCO Remoting gives you a very simple way of creating web services in C++ by just annotating C++ class definitions with special comments and running a code generator over it. It's commercial, but delivered with full source code. A free eval version is available. Runs on Windows, Linux, Mac OS X, etc.

share|improve this answer

"web services" is not a well defined term.


share|improve this answer
Yes, it is. A Web Service is a Web application that exposes a set of functions (in the programming sense of the word function) that can be called by sending its parameters over HTTP requests, and whose return values can be retrieved from the corresponding HTTP responses. –  Eduardo León Feb 19 '11 at 13:10

I concur with imjorge's answer and add that there's a C/C++ version of the Axis2 framework (a more flexible, extensible Axis) that does SOAP via RPC and all sorts of stuff including a bunch of the WS-* specs.


share|improve this answer

We are using EasySoap (http://easysoap.sourceforge.net/)

share|improve this answer

While not FOSS another library is ATL Server library from Microsoft. It is C++ template based with some proprietary attributes by Microsoft. i.e. not standard C++

share|improve this answer
Irony of that one is that just as it got dumped by msft on CPlex, Google started rolling out its own, very similar in structure.. –  rama-jka toti Oct 27 '09 at 9:43

You can check out xmlbeansxx. This is a kind of lightweight, low level solution, compared to complete frameworks. This has advantages in some cases.

Invoking SOAP WebServices using xmlbeansxx Article

Code example is here: WsClient.cpp.

share|improve this answer

Apache axis-c: Simple to use, but seems abandoned.. not even download pages is working for several months

WSOF WSFCPP: Fast quickstart dev, both binded or no-binded implementation, based on Apache AxisC and it seems most of the current developers of Apache Axis is from WSOF company. Besides the Great potential I've detected a memory leak.

I'm currently using Gsoap and It has very good performance. Gsoap "mixed notation" between old c style and some (bad?) practices for C++ bothers me some.. but this is only code-furniture.

POCO: Is a full-feature, modern (java?) like library. It is open source software, licensed under the Boost Software License 1.0. You'll have to write some things from scrach, but with great support, utility classes and etc great library.. Innovations from c++11+ with all boost initiatives + POCO + a new Build/Dependency system more "gradle like" will certainly bring c++ to new areas of development.

share|improve this answer

Do You REALLY need it to be C++? If so you may think of integrating it with some other language that has close-to-native support for some Web Services standars.

However, you should look into REST (http://w.cx/d39d11) for web/internet-based apps. It's probably the best option out there to get code out fast.

share|improve this answer
I could not follow your link, can you please edit? –  Raz Sep 15 '08 at 20:04

Your Answer


