SMX is an open source text-embedded macro processing language whose syntax, is designed to be embedded in HTML/XML pages for producing dynamic content. SMX is not a procedural language, it is a "context- oriented" language, and is uniquely well-suited to common web development tasks.
SMX provides support for database access via odbc/unixODBC, image creation via gd, SSL via openssl amd embedded database support via sqlite. These packages must be installed in order to take advantage of these features.
SMX can run embedded in a web server as an Apache module, or via cgi or fastcgi.
New macros can be added to SMX's core functions by using %module() on a DLL or SO built in C, or by using the %perl extension to load CPAN libraries.
Untrusted users can write SMX scripts that can be evaluated via %safe-mode or %safe-expand, in which available macros and parameter ranges can be explicitly defined.