# WSO2 Web Services Framework for C++

WSO2 Web Services Framework for C++ (WSO2 WSF/C++) is an extension to WSO2 Web Services Framework for C, a standards compliant, enterprise grade, open source, C++ library for providing and consuming Web Services in C++. WSO2 WSF/C++ adds the neccessary features to WSO2 WSF/C, by means of a C++ wrapper to the C library. WSF/C++ is a complete solution for building and deploying Web Services, and is the C++ wrapper to the C library with the widest range of WS-* specification implementations (WSO2 WSF/C), including MTOM, WS-Addressing, WS-Policy, WS-Security, WS-SecurityPolicy, WS-ReliableMessaging and WS-Eventing.

WSO2 WSF/C++ is released with Apache License V2.0, and is based on the family of Apache open source projects, including Apache Axis2/C, Apache Rampart/C, Apache Sandesha2/C, Apache Savan/C and also WSO2 Web Services Framework for C. The key advantage of using WSO2 WSF/C++ is that it extends Apache Axis2/C, whilst exposing it through C++. It also, seamlessly integrates the multiple Apache Axis2/C projects together, which is tested and ready to be used. It also comes with additional features made available with WSO2 WSF/C, such as XMPP transport and a command line tool for consuming Web Services, named wsclient.

## Why WSO2 WSF/C++?

WSO2 WSF/C++ is an all new C++ Style exposure to the popular WSO2 WSF/C library and relives you of the burden of looking for and integrating multiple software elements to build a comprehensive Web Services stack on C++. Comprehensive coverage of WS-* specifications allows you to use WSO2 WSF/C++ for enterprise grade applications.

WSO2 WSF/C++ is an open source project. Thus you have all the benefits that you can gain with an open source project, such as no worries of vendor locking and support from the user community.

WSO2 WSF/C++ is ready to be embedded just the same as WSO2 WSF/C, enabling the user to integrate the library with any other Web Services extension based on C++.

## WSO2 WSF/C++ Features

Feature | Description
--- | ---
Comprehensive Support for Web Services Standards | WSO2 WSF/C++ supports the basic Web Services standards including SOAP 1.1, SOAP 1.2 and MTOM. WSF/C++ also supports the following WS-* specifications: WS-Addressing WS-Policy WS-Security WS-SecurityPolicy
Portability and Platform Support | WSO2 WSF/C++ has been tested on: Windows XP - Microsoft Visual C++ 7.1 Windows XP - Microsoft Visual C++ 8.0 Linux – gcc/g++ 4.1.1 Red Hat Enterprise Linux ES release 4 (Nahant) - gcc 3.4.3 Sun Solaris 2.10 x86 - gcc 3. MacOS 10.4.10 - gcc/g++ 4.0.1
WSDL2CPP Codegeneration | WSO2 WSF/C++ comes with code generation tool which generates client stubs and service skeletons for a given wsdl.
Other Features inherited from WSF/C
Web Server Extensions | WSO2 WSF/C++ can be deployed as a server-side extension within a Web server, such as Apache Web Server or Microsoft IIS. It also includes an HTTP server and can be deployed as a stand-alone server.
Other Features inherited from WSF/C | WSO2 WSF/C++ Inherits an array of features from it's base, WSO2 WSF/C such as, Proven Interoperability Transport Abstraction XML Parser Abstraction WSDL2C Code Generation

## Open Source Components Included in WSO2 WSF/C++

- WSO2 WSF/C

- Apache Axis2/C (The Web Services engine)

- WS-Addressing implementation in Axis2/C

- WS-Policy implementation in Axis2/C

- Apache Rampart/C (WS-Security)

- WS-SecurityPolicy implementation in Axis2/C

- Apache Sandesha2/C (WS-ReliableMessaging)

- Apache Savan/C (WS-Eventing)

- Libxml2

- OpenSSL

## Known Issues

1. There can be memory leaks when using WS-ReliableMessaging. Please refer to the Apache Sandesha2/C README file located in the wsf_c/sandesha2 folder.

2. There is a crash problem in dual channel clients.