<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
  <head>
    <title>Apache Tcl</title>
    <link rel="stylesheet" href="style.css">
  </head>
  <body>
    <? title ?>

    <table class="main">
	<tr>
	  <? navbar ?>

	  <td valign="top">
	    <h2>Individual Projects</h2>
	    <p>
	      <a href="mod_dtcl/">mod_dtcl</a> enables the use of Tcl
	      as an HTML-embedded scripting language, similar to PHP,
	      as well as executing pure Tcl files. It is fast, light,
	      and lets you use the extensive codebase of existing Tcl
	      code on the web. For Apache 1.3.
	    </p>
	    <p>
	      <a href="neowebscript/">neowebscript</a> also enables
	      the use of Tcl as an HTML-embedded scripting language.
	      It uses safe interpreters for security, supports db
	      files, can generate graphics on-the-fly, and other
	      stuff. For Apache 1.3.
	    </p>
            <p>
              <a href="mod_tcl/">mod_tcl</a>, With mod_tcl
              it is possible to write Apache modules entirely in TCL
              . In addition, the persistent interpreter embedded in
              the server avoids the overhead of starting an external
              interpreter and the penalty of TCL start-up time. For
              Apache 2.0.
            </p>
	    <p>
              <a href="rivet/">Apache Rivet</a> is the "next
              generation" of mod_dtcl and neowebscript.  We have taken
              the things we like most about both, fixed things we
              didn't like, and combined efforts in order to come up
              with something we're very pleased with.  For Apache 1.3.
	    </p>
	    <p>
              <a href="websh/">Websh</a> is a rapid development
              environment for building powerful, fast, and reliable
              web applications. Websh is versatile and handles
              everything from HTML generation to data-base driven
              one-to-one page customization.  It has been used for
              years commercially, and is now part of the Apache Tcl
              project. For Apache 1.3 and 2.0.
	    </p>
	  </td>
	</tr>
    </table>
    <? powered ?>
  </body>
</html>
