{"id":19195448,"url":"https://github.com/ardupilot/gsoap","last_synced_at":"2026-03-01T15:03:20.983Z","repository":{"id":47525924,"uuid":"379496881","full_name":"ArduPilot/gSOAP","owner":"ArduPilot","description":"Modified gSOAP library for use by Ardupilot","archived":false,"fork":false,"pushed_at":"2021-08-25T11:14:15.000Z","size":23564,"stargazers_count":3,"open_issues_count":0,"forks_count":18,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-02-23T04:41:20.385Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ArduPilot.png","metadata":{"files":{"readme":"README.txt","changelog":"changelog.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-06-23T06:05:45.000Z","updated_at":"2025-01-10T21:40:36.000Z","dependencies_parsed_at":"2022-09-23T12:39:01.870Z","dependency_job_id":null,"html_url":"https://github.com/ArduPilot/gSOAP","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ArduPilot/gSOAP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArduPilot%2FgSOAP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArduPilot%2FgSOAP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArduPilot%2FgSOAP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArduPilot%2FgSOAP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ArduPilot","download_url":"https://codeload.github.com/ArduPilot/gSOAP/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArduPilot%2FgSOAP/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29973155,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T14:44:57.896Z","status":"ssl_error","status_checked_at":"2026-03-01T14:43:27.662Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T12:09:58.393Z","updated_at":"2026-03-01T15:03:20.966Z","avatar_url":"https://github.com/ArduPilot.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"================================================================================\r\n\r\nThanks for using gSOAP!\r\n\r\nThe gSOAP toolkit provides a cross-platform software development toolkit for C\r\nand C++ server and client Web service applications, and simplifies the overall\r\nuse of XML in any type of application. The toolkit supports SOAP 1.1/1.2 RPC\r\nencoding and document/literal styles, WSDL 1.1, MTOM/MIME/DIME attachments\r\n(streaming), SOAP-over-UDP, request-response and one-way messaging. The toolkit\r\nalso supports WS-Addressing and WS-Security, with several other WS-* available\r\nor under development. See the official open-source gSOAP website\r\nhttp://gsoap2.sourceforge.net for project status and latest news.\r\n\r\n* The gSOAP 'soapcpp2' compiler and code generator and 'stdsoap2' runtime\r\n  engine are stable since version release 2.1.3.\r\n\r\n* The gSOAP 'wsdl2h' WSDL/schema parser and code generator is stable since\r\n  wsdl2h version release 1.1.0. The 'wsdl2h' tool fully supports WSDL 1.1,\r\n  XML schemas, WS-Policy, and other WS-* protocols (details in the fact sheet).\r\n\r\nThe software is provided \"as is\", without any warranty. However, gSOAP\r\nhas been extensively field-tested in production-quality software development.\r\nWe continue to improve gSOAP and add new features.\r\n\r\nSee NOTES.txt for distributed notes and an overview of the package contents.\r\nSee INSTALL.txt for installation instructions.\r\nSee LICENSE.txt for software licensing.\r\n\r\n================================================================================\r\nWHAT'S COOL?\r\n================================================================================\r\n\r\nThe gSOAP 'wsdl2h' tool is a gSOAP application itself, which demonstrates the\r\ncapabilities of the generic XML handling by the toolkit to parse WSDL, XML\r\nschemas, and SOAP/XML.\r\n\r\nThe gSOAP toolkit supports streaming technologies to expedite SOAP/XML and\r\nMTOM/MIME attachment transfers of potentially unlimited data lengths.\r\n\r\nThe gSOAP toolkit is the only toolkit that supports the serialization of native\r\nC and C++ data types directly in XML. You can use it to export and import your\r\napplication data in XML without having to write wrapper routines.\r\n\r\nThe gSOAP toolkit ensures as small memory footprint. XML is a processed as a\r\ntransient format and not buffered. Many optimizations have been applied to\r\nreduce resource requirements and to expedite XML parsing.\r\n\r\nThe gSOAP toolkit provides stand-alone HTTP(S) web server functionality as well\r\nas Apache mod and IIS hooks (located in gsoap/mod_gsoap). Also CGI and FastCGI\r\nare supported. A web server example demonstrating the stand-alone functionality\r\nis included in the package.\r\n\r\n================================================================================\r\nFEATURES\r\n================================================================================\r\n\r\nXML data binding tools for C/C++\r\nXML schema \u003c=\u003e C/C++ type binding means XML and C/C++ data is type safe\r\nXML streaming auto-serialization of C/C++ data (with optional use of DOM)\r\nXML-RPC from/to JSON from/to C/C++ serialization (also in streaming mode)\r\nNo need to alter C/C++ types for serialization (declare type as 'volatile')\r\nWSDL 1.1/2.0, XSD 1.0/1.1, SOAP 1.1/1.2 compliant\r\nREST HTTP(S) 1.0/1.1 operations (GET,PUT,POST etc) for XML, JSON, etc\r\nSend and recieve XML over sockets, file FD, and C++ streams\r\nWS-I Basic Profile 1.0a, 1.1, and 1.2 compliant\r\nW3C schema patterns for data binding full test pattern coverage\r\nRSS 0.91, 0.92, 2.0 XML support\r\nMIME and MTOM attachment support (also in streaming mode)\r\nWS-Security XML authentication, signatures, encryption (also in streaming mode)\r\nWS-Policy 1.2, 1.5 and WS-SecurityPolicy 1.2 compliant\r\nWS-Addressing 2003/03, 2004/03, 2005/03 compliant\r\nWS-ReliableMessaging 1.0 and 1.1 compliant\r\nWS-Discovery 1.0/1.1\r\nUDDI v2 API\r\nNTLM authentication\r\nHTTP basic and digest authentication\r\nSSL/TLS communications with SSL session caching (OpenSSL or GNUTLS)\r\nProxy and proxy authentication support\r\nCompression (HTTP compression and zlib)\r\nIPv4 and IPv6, including direct TCP and UDP data transfer\r\nSOAP-over-UDP\r\nApache 1.x and 2.0 modules\r\nIIS (ISAPI) and WinInet modules\r\nCGI and FastCGI support\r\nStand-alone Web server included (multithreaded, SSL, compression)\r\nIntegrated memory management with deallocation and leak detection\r\nPlug-ins for additional capabilities\r\nInternationalization/localization support (UTF8, UCS4, MB encodings, etc)\r\nWSDL/XSD conversion to C or C++ and vice versa\r\nPortable to small devices (WinCE, Palm, Symbian, VxWorks, Andriod, iPhone)\r\nAuto-test server code generation for (dummy) server testing\r\nAutomatic XML document and message generation from WSDL and XSD\r\nC/C++ (cyclic) object graph auto-serialization (with SOAP id-href encoding)\r\nSTL container auto-serialization and custom C++ container auto-serialization\r\nOver 40 example client and server applications included\r\n\r\n================================================================================\r\nPACKAGE\r\n================================================================================\r\n\r\nThis distribution package contains platform-independent source code. Pre-built\r\n'soapcpp2' and 'wsdl2h' binaries are included for the following platforms:\r\n\r\n\t* Win32 i386 compatible\r\n\t* MAC OS X\r\n\r\nThe binaries are located in 'gsoap/bin'.\r\n\r\nImportant: these 'wsdl2h' binaries use the default configuration without SSL\r\nsupport (no HTTPS site access).\r\n\r\nTo configure and build the toolkit binaries and libraries, please see the\r\ninstallation instructions in the 'INSTALLATION' section below.\r\n\r\n================================================================================\r\nGETTING STARTED\r\n================================================================================\r\n\r\nFollow the installation instructions in INSTALL.txt first.\r\n\r\nThe gSOAP 'wsdl2h' tool converts WSDLs into a gSOAP header file for processing\r\nwith the gSOAP code gnerator 'soapcpp2' to generate XML serialization, stubs,\r\nand skeletons code to build Web services applications.  Use 'wsdl2h' followed\r\nby 'soapcpp2' to translate an entire set of WSDL and XML schemas into\r\nrepresentative C or C++ data structures and associated XML parsers. You can\r\nalso use the gSOAP 'soapcpp2' tool directly on existing C/C++ data structure\r\ndeclarations to create XML serialization routines for these types to simplify\r\nthe storage of data in XML.\r\n\r\nExample translation of WSDL to code in two steps:\r\n\r\n\t$ wsdl2h -s -o calc.h http://www.cs.fsu.edu/~engelen/calc.wsdl\r\n\t$ soapcpp2 -CL -I/path/to/gsoap/import calc.h\r\n\r\nThe 'calc.h' header file contains the services and XML schema types represented\r\nin C/C++, together with other useful information copied from the WSDL related\r\nto the service. Run Doxygen on it to generate a nice set of pages.\r\n\r\nDo not include the wsdl2h-generated 'calc.h' header file directly into your\r\ncode (the declarations are replicated in the generated code). The header file\r\nis processed by the gSOAP stub compiler 'soapcpp2' to generate the following\r\nfiles for your project:\r\n\r\n\tsoapClient.cpp\tclient-side stub routines for service invocation\r\n\tsoapServer.cpp\tserver-side skeleton routines for server development\r\n\tsoapC.cpp\tC/C++ parameter marshalling code\r\n\tcalc.nsmap\tAn XML-to-C/C++ namespare mapping table\r\n\r\nTo compile a client, all you need to do is to compile and link 'soapC.cpp',\r\n'soapClient.cpp', and 'stdsoap2.cpp' (or the installed libgsoap++, see\r\nINSTALLATION) with your code. To access the service in your code:\r\n\r\n\t#include \"soapH.h\"\r\n\t#include \"calc.nsmap\"\r\n        main()\r\n\t{ struct soap *soap = soap_new(); // alloc 'soap' engine context\r\n\t  double result;\r\n\t  if (soap_call_ns2__add(soap, NULL, NULL, 1.0, 2.0, result) == SOAP_OK)\r\n\t    std::cout \u003c\u003c \"The sum of 1.0 and 2.0 is \" \u003c\u003c result \u003c\u003c std::endl;\r\n\t  else\r\n\t    soap_stream_fault(soap, std::cerr);\r\n\t  soap_destroy(soap); // dealloc serialization data\r\n\t  soap_end(soap);     // dealloc temp data\r\n\t  soap_free(soap);    // dealloc 'soap' engine context\r\n\t}\r\n\r\nFirst, this imports all soapcpp-generated definitions and the namespace mapping\r\ntable. Then the soap_call_ns2__add() invokes the service. This function is\r\ngenerated from the calc.h file by soapcpp2. The calc.h file includes\r\ninstructions on what functions to call.\r\n\r\nTo develop a C++ client application based on C++ proxy objects rather than\r\nC-like functions, use 'soapcpp2' option -j:\r\n\r\n\t$ wsdl2h -s -o calc.h http://www.cs.fsu.edu/~engelen/calc.wsdl\r\n\t$ soapcpp2 -j -CL -I/path/to/gsoap/import calc.h\r\n\r\nThis generates 'soapcalcProxy.h' and 'soapcalcProxy.cpp' with a calcProxy\r\nclass with service methods that you can use to invoke services. For example:\r\n\r\n\t#include \"soapcalcProxy.h\"\r\n\t#include \"calc.nsmap\"\r\n\tmain()\r\n\t{ calcProxy service;\r\n\t  double result;\r\n\t  if (service.add(1.0, 2.0, result) == SOAP_OK)\r\n\t    std::cout \u003c\u003c \"The sum of 1.0 and 2.0 is \" \u003c\u003c result \u003c\u003c std::endl;\r\n  \t  else\r\n\t    service.soap_stream_fault(std::cerr);\r\n\t  service.destroy(); // dealloc serialization and temp data\r\n\t}\r\n\r\nCompile the above program and link with 'soapC.cpp', 'soapcalcProxy.cpp', and\r\n'stdsoap2.cpp' (or -lgsoap++).\r\n\r\nTo develop a C client, use 'wsdl2h' option -c to generate pure C code.\r\n\r\nThere are many options that you can use depending on the need to develop C\r\napplications, C++ with or without STL, or C++ proxy and server objects. In\r\naddition, the XML schema type mapping is defined by 'typemap.dat', located in\r\nthe project root and 'WS' folders. The 'typemap.dat' file is used to customize\r\nthe 'wsdl2h' output. It is important to use this file for larger projects that\r\ndepend in WS-* protocols, such as WS-Addressing and WS-Security.\r\n\r\nMore information about the 'wsdl2h' and 'soapcpp2' tools and their options can\r\nbe found in the gSOAP documentation and the Quick How-To page on the gSOAP Web\r\nsite, see: http://gsoap2.sourceforge.net\r\n\r\nSee also the 'gsoap/wsdl/README.txt' for more details on the WSDL parser and\r\ninstallation. The 'gsoap/bin' folder includes pre-built 'soapcpp2' and\r\n'wsdlh2' executables for various platforms.\r\n\r\n================================================================================\r\nBUILD NOTES\r\n================================================================================\r\n\r\nQNX\r\n\r\nOn QNX the bison.simple file is located in $QNX_HOST/usr/share/bison.simple\r\nUpdate your .profile to include:\r\n\r\n\texport BISON_SIMPLE=$QNX_HOST/usr/share/bison/bison.simple \r\n\texport BISON_HAIRY=$QNX_HOST/usr/share/bison/bison.hairy \r\n\r\nWIN32\r\n\r\nBison 1.6 can crash on Win32 systems if YYINITDEPTH is too small Compile with\r\n/DYYINITDEPTH=5000\r\n\r\n================================================================================\r\nCHANGELOG\r\n================================================================================\r\n\r\nVisit http://www.cs.fsu.edu/~engelen/changelog.html to view the latest changes.\r\n\r\n================================================================================\r\nLICENSE\r\n================================================================================\r\n\r\nSee LICENSE.txt\r\n\r\n================================================================================\r\nCOPYRIGHT\r\n================================================================================\r\n\r\nCopyright (C) 2000-2015 Robert van Engelen, Genivia, Inc. All Rights Reserved.\r\n\r\n================================================================================\r\nUSE RESTRICTIONS\r\n================================================================================\r\n\r\nYou may not: (i) transfer rights to gSOAP or claim authorship; or (ii) remove\r\nany product identification, copyright, proprietary notices or labels from gSOAP.\r\n\r\n================================================================================\r\nWARRANTY \r\n================================================================================\r\n\r\nGENIVIA INC. EXPRESSLY DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS, IMPLIED OR\r\nSTATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF\r\nMERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT OF THIRD\r\nPARTY INTELLECTUAL PROPERTY RIGHTS, AND ANY WARRANTY THAT MAY ARISE BY REASON\r\nOF TRADE USAGE, CUSTOM, OR COURSE OF DEALING.  WITHOUT LIMITING THE\r\nFOREGOING, YOU ACKNOWLEDGE THAT THE SOFTWARE IS PROVIDED \"AS IS\" AND THAT\r\nGENIVIA INC. DO NOT WARRANT THE SOFTWARE WILL RUN UNINTERRUPTED OR ERROR FREE.\r\nLIMITED LIABILITY: THE ENTIRE RISK AS TO RESULTS AND PERFORMANCE OF THE\r\nSOFTWARE IS ASSUMED BY YOU.  UNDER NO CIRCUMSTANCES WILL GENIVIA INC. BE LIABLE\r\nFOR ANY SPECIAL, INDIRECT, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF\r\nANY KIND OR NATURE WHATSOEVER, WHETHER BASED ON CONTRACT, WARRANTY, TORT\r\n(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, ARISING OUT OF OR IN\r\nANY WAY RELATED TO THE SOFTWARE, EVEN IF GENIVIA INC. HAS BEEN ADVISED ON THE\r\nPOSSIBILITY OF SUCH DAMAGE OR IF SUCH DAMAGE COULD HAVE BEEN REASONABLY\r\nFORESEEN, AND NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY\r\nEXCLUSIVE REMEDY PROVIDED.  SUCH LIMITATION ON DAMAGES INCLUDES, BUT IS NOT\r\nLIMITED TO, DAMAGES FOR LOSS OF GOODWILL, LOST PROFITS, LOSS OF DATA OR\r\nSOFTWARE, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION OR IMPAIRMENT OF\r\nOTHER GOODS.  IN NO EVENT WILL GENIVIA INC. BE LIABLE FOR THE COSTS OF\r\nPROCUREMENT OF SUBSTITUTE SOFTWARE OR SERVICES.  YOU ACKNOWLEDGE THAT THIS\r\nSOFTWARE IS NOT DESIGNED FOR USE IN ON-LINE EQUIPMENT IN HAZARDOUS\r\nENVIRONMENTS SUCH AS OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR\r\nCONTROL, OR LIFE-CRITICAL APPLICATIONS.  GENIVIA INC. EXPRESSLY DISCLAIM ANY\r\nLIABILITY RESULTING FROM USE OF THE SOFTWARE IN ANY SUCH ON-LINE EQUIPMENT IN\r\nHAZARDOUS ENVIRONMENTS AND ACCEPTS NO LIABILITY IN RESPECT OF ANY ACTIONS OR\r\nCLAIMS BASED ON THE USE OF THE SOFTWARE IN ANY SUCH ON-LINE EQUIPMENT IN\r\nHAZARDOUS ENVIRONMENTS BY YOU.  FOR PURPOSES OF THIS PARAGRAPH, THE TERM\r\n\"LIFE-CRITICAL APPLICATION\" MEANS AN APPLICATION IN WHICH THE FUNCTIONING OR\r\nMALFUNCTIONING OF THE SOFTWARE MAY RESULT DIRECTLY OR INDIRECTLY IN PHYSICAL\r\nINJURY OR LOSS OF HUMAN LIFE.\r\n\r\n================================================================================\r\nEXTERNAL THIRD-PARTY LIBRARIES\r\n================================================================================\r\n\r\nThe gSOAP toolkit is self-contained and does not require any third-party\r\nsoftware to run in its standard configuration. When compression and SSL\r\nencryption are required the Zlib and OpenSSL libraries must be installed.\r\n\r\nTo build the gSOAP 'soapcpp2' compiler, you must have Bison and Flex installed\r\nor the older Yacc and Lex equivalents. Note that licensing differs for Flex\r\nversus Lex, and Bison versus Yacc.\r\n\r\nWin32 builds of clients and services requires winsock.dll. To do this in\r\nVisual C++ 6.0, go to \"Project\", \"settings\", select the \"Link\" tab (the\r\nproject file needs to be selected in the file view) and add \"wsock32.lib\" to\r\nthe \"Object/library modules\" entry. The distribution contains a Visual Studio\r\n2005 project example in the 'samples/calc_vs2005' folder with the necessary\r\nproject settings to link libraries and automatically invoke to soapcpp2\r\ncompiler as a custom build.\r\n\r\n================================================================================\r\nDISCLAIMER\r\n================================================================================\r\n\r\nWE PROVIDE YOU WITH \"REAL-WORLD\" EXAMPLES BUT WE CANNOT GUARANTEE THAT ALL\r\nCLIENT EXAMPLES CAN CONNECT TO THIRD PARTY WEB SERVICES WHEN THESE SERVICES ARE\r\nDOWN OR HAVE BEEN REMOVED.\r\n\r\n================================================================================\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fardupilot%2Fgsoap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fardupilot%2Fgsoap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fardupilot%2Fgsoap/lists"}