<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
  <head>
    <title>Apache Tcl</title>
    <link rel="stylesheet" href="style.css">
    <link rel="SHORTCUT ICON" href="http://tcl.apache.org/favicon.ico">
  </head>
  <body>
    <? title ?>

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

	  <td valign="top">
	    <h2>Introduction</h2>
	    <p>
	      Apache Tcl is an umbrella for Tcl-Apache integration
	      efforts.  These projects combine the power of the Apache
	      web server with the capabilities of the mature, robust
	      and flexible Tcl scripting language.
	    </p>
	    <p>
	      New to Tcl?  Curious about its advantages?  Have a look
	      at <a href="why.rvt">Why Tcl?</a>
	    </p>

	    <h3>Current Projects</h3>
            <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 and 2.x.
	    </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, 2.0 and 2.2.
	    </p>

	  </td>
	</tr>
    </table>
    <? powered ?>
  </body>
</html>
