Licensing
Ssrc Web Wispers is Copyright 2006-2011 by Savarese Software Research Corporation and licensed under the Apache License 2.0 as described in the files accompanying the source distribution:
- LICENSE
- NOTICE
This product uses software developed by Spread Concepts LLC for use in the Spread toolkit. For more information about Spread, see http://www.spread.org/.
Contact
For inquiries about the software see https://www.savarese.com/contact.html
Nota Bene
The API documentation is currently incomplete. Source-derived API documentation is of limited use to understand a C++ framework such as Web Wispers. Therefore, a Web Wispers programming tutorial with example programs will be made available at a future date. In the meantime, the source code for the various services and modules provides a starting point for building applications with Web Wispers. The API documentation will be completed in a future release.
Overview
Ssrc Web Wispers is a C++/Lua framework and set of Wisp services for building the backend infrastructure of interactive Web applications hosted on a cluster of computing nodes. It includes core services such as a service registry, session tracker, dynamic page renderer, and Web service relay. In addition, Ssrc Web Wispers provides key frameworks such as an embedded database API built on top of SQLite that simplifies serializing and deserializing C++ structures to and from rows in a relational database. Additional services that build on this core, such as a user account login service and Web forum, will be released separately.
Ssrc Web Wispers simplifies programming by encouraging the use of single-threaded I/O event-driven processes. Although it is possible to write multi-threaded services with Ssrc Web Wispers, you will produce more robust and flexible applications by using the process as a unit of parallelism instead of the thread. Processes can be distributed across multiple nodes in a cluster or wide-area network, whereas threads cannot. If your workload and/or data exceeds the capacity of a single process, partition the workload and/or data between multiple processes.
The software has been tested on Linux (2.6.x and 3.0.x series kernels), FreeBSD 7.1, Solaris 10, and Mac OS X 10.6.8 (with gcc 4.5.0).
Compiling and Installation Instructions
Dependencies
Ssrc Web Wispers requires Ssrc Wisp (and its dependencies libssrcspread, Spread 4.x (www.spread.org), and Boost (www.boost.org)), Lua 5.1.x (www.lua.org), FastCGI 2.4.x (www.fastcgi.com), SQLite 3.7.x (www.sqlite.org), and SWIG 1.3.39+ to build. Also ltp is required by the renderer and relay services at run time (the easiest way to do this is to pass the parent directory of the ltp module directory to the renderer/relay -I flag).
Ssrc Wispers depends on the GNU development tool chain (g++, gmake, autoconf, automake, and libtool)—specifically GCC 4.5.0 or greater is required for compilation.
Generation of test code coverage data requires lcov (ltp.sourceforge.net/coverage/lcov.php). Generation of documentation requires doxygen (www.doxygen.org). None of these packages is required to compile the library.
Compiling
Run the configure script to generate the Makefiles.
configure --help
will list the configuration options.
If the libssrcspread API headers and libraries are not installed in a default system location, you will have to tell configure how to find them with:
configure --with-ssrcspread=PATHNAME
If the Boost API headers and libraries are not installed in a default system location, you will have to tell configure how to find them with:
configure --with-boost=PATHNAME
If the Spread C API headers and libraries are not installed in a default system location, you will have to tell configure how to find them with:
configure --with-spread=PATHNAME
If the Wisp C++ API headers and libraries are not installed in a default system location, you will have to tell configure how to find them with:
configure --with-wisp=PATHNAME
If the Lua C API headers and libraries are not installed in a default system location, you will have to tell configure how to find them with:
configure --with-lua=PATHNAME
If the FastCGI C API headers and libraries are not installed in a default system location, you will have to tell configure how to find them with:
configure --with-fcgi=PATHNAME
If the SQLite C API headers and libraries are not installed in a default system location, you will have to tell configure how to find them with:
configure --with-sqlite=PATHNAME
Also, you may decide to use the --disable-namespace-versioning
option to avoid having to recompile dynamically linked programs after upgrading the library.
Installation
To install:
make install
If Doxygen is available on your system, you can generate API documentation with:
make apidocs
To compile and run unit tests:
make check
If lcov is available on your system, then you can generate the code coverage data with:
make coverage