Quick Nav
Appweb ModulesDynamic and Static Loading
LoadModule Directive
See Also
User Guide Overview
Appweb Architecture
Configuring Appweb
Configuration Directives
Ports and Binding
Authorization
Secure Sockets Layer (SSL)
Virtual Hosts
Creating Dynamic Web Pages
Embedded Server Pages
Using Embedded JavaScript
Using PHP
Using CGI
Handlers
HTTP Client
Creating Modules
Loadable Modules
Embeddable web servers have several competing goals:
- Minimize memory footprint<
- Minimize impact CPU impact
- Maximize security
- Provide a strong and standard feature set
To meet all these goals in one server is difficult. Appweb uses loadable modules so that the core HTTP server may be kept lean, secure and fast while still having the ability to grow functionality as required.
Appweb Modules
Appweb heavily uses loadable modules to componentize its functionality. The following modules are delivered with Appweb:
| Name | Purpose |
| authModule
|
Authorization handler
|
| capiModule
|
C API for Appweb
|
| cgiModule
|
Common Gateway Interface (CGI) handler
|
| compatModule
|
Compatibility API for other web server APIs
|
| copyModule
|
Copy handler |
| egiModule
|
Embedded Gateway Interface (EGI) handler
|
| ejsModule
|
Embedded JavaScript (EJS) module |
| espModule
|
Embedded Server Pages (ESP) handler
|
| openSslModule
|
Open SSL provider module
|
| phpModule
|
PHP handler
|
| sslModule
|
Core SSL engine
|
| uploadModule
|
File upload handler
|
Dynamic and Static Loading
An Appweb loadable module is a discrete unit of functionality that may be linked into Appweb to enhance the core HTTP server. Loadable Modules may be delivered in two forms:-
Dynamically loadable library / Shared Library
-
Statically linkable libraries
LoadModule Directive
The Appweb configuration file specifies which modules to load and in what order. As some modules may depend on the functionality provided by other modules -- order does matter. The LoadModule directive will load a modules and activate it for processing. If the modules is already loaded (either statically or dynamically), the load directive will have no effect.LoadModule myModule lib/libmyModule
On Windows, this directive will load libmyModule.dll. On Linux, it will load libmyModule.so. If the module is statically linked into Appweb, the LoadModule directive will not need to load it.
Appweb will look for the module in the directory specified relative to the directory defined by the ServerRoot. Appweb will search other directories if a LoadModulePath directive is specified. This will nominate a set of directories to search in order when attempting to locate the module.
LoadModulePath ../../bin ../../bin/Debug ../../bin/Release
For information about how to create a loadable module, see Creating Appweb Modules.