Embedthis Appweb 3.0A.0
Home > User Guide > Modules

Quick Nav

Appweb Modules
Dynamic 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:

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:
The same programming interface applies to both forms and you can create a single image which can be both dynamically and statically loaded.

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.

© Embedthis Software LLC, 2003-2009. All rights reserved. Embedthis, Ejscript and Appweb are trademarks of Embedthis Software LLC.