<!DOCTYPE HTML>
<html lang="en">
<head>
          
    <meta name="keywords" content="Apache Tcl Webprogramming">
    <meta name="description" content="Website for the Tcl related projects within the Apache Software Foundation">
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <title>Apache Tcl</title>
	
	<!-- Le styles -->
    <link href="templates/ydotm/bootstrap3.css" rel="stylesheet"> 
    <link href="templates/ydotm/style.css" rel="stylesheet">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">

	<!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
	<!--[if lt IE 9]>
	  <script src="/assets/js/html5shiv.js"></script>
	<![endif]-->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="text/javascript"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
		         
</head>

<body>
<div id="wrapper">
	<div id="main">
		<nav class="navbar navbar-default tcl-navbar">
			<div class='container'>
				<div class="navbar-header">
					<button class="navbar-toggle collapsed" 
                            type="button" 
                            data-toggle="collapse" 
                            data-target="#tcl-navbar-collapse" 
                            aria-controls="tcl-navbar-collapse"
                            aria-expanded="false">
						<span class="sr-only">Toggle navigation</span>
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
					</button>
					<div id='logo'>
				 		<a href="index.html" 
                            class="navbar-brand nav-logo ">Apache Tcl</a>
				 	</div>
				</div>
				<div class="collapse navbar-collapse" id="tcl-navbar-collapse">
					<ul class="nav navbar-nav navbar-right">
						<li>
							<a href="index.html">Home</a>
						</li>
						<li>
							<a href="http://tcl.apache.org/rivet/">Rivet</a>
						</li>
						<!-- li>
							<a href="http://tcl.apache.org/websh/">Websh</a>
						</li -->
						<!-- li><a href="http://tcl.apache.org/mod_tcl/">mod_tcl</a></li -->
						<li>
						 	<a href="html/about.html">About Us</a>
						</li>
					</ul>
				</div><!-- /.navbar-collapse -->
			</div><!-- /.container -->
		</nav>
		<div class="container container-tcl-main">
			<div class="row">
				<div class="col-xs-12 col-sm-12 col-md-4 col-md-offset-1 col-lg-4 col-lg-offset-1">
					<img class="img-responsive img-center"
                         src="templates/ydotm/apachetcl.gif">
				</div>
				<div class="col-xs-12 col-sm-12 col-md-7 col-lg-7">
					<div class='tcl-main-intro'>
						<div class='intro-header'>Tcl and Apache HTTP webserver Integration</div>
						<div class='intro-body'>
							<p>
	                  	Apache Tcl is home to the Tcl-Apache integration efforts. The purpose of
	                     our project is to 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="html/why.html">Why Tcl?</a>
							</p>
						</div>
					</div>
				</div>	
			</div>
		</div>
		<div class="container-tcl-body">
			<div class='container'>
				<div class="row">
					<div class="col-xs-12 col-sm-12 col-md-7 col-lg-7">
						<div class='tcl-main-body'>
							<h2>Introduction</h2>
					          <p>
              Apache Tcl was born to coordinate and stimulate the
              development of tools integrating the Tcl programming language
              with the Apache HTTP web server. Our aim was to 
              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="html/why.html">Why Tcl?</a>
</p>

<h3>Current Projects</h3>

<p>	
            	We are currently developing and supporting 
            	<a href="http://tcl.apache.org/rivet/" target="_blank">Apache Rivet</a>

. 
            	Rivet was meant to be a replacement for mod_dtcl and neowebscript from
            	which the best features were taken. Apache Rivet provides a content
            	generator module (mod_rivet) which runs Tcl scripts and Rivet
            	templates. Rivet templates work like PHP pages where code can
            	be embedded within the HTML but using Tcl instead.
                </p>

<p>
            	Apache Rivet extends the Tcl language with new commands aimed at
            	providing a program interface to the web server and several 
            	utilities that usually come handy in web programming. 
            </p>

<p>                 
                Rivet runs with Apache 2.2 and 2.4. Currently the
		<a href="http://httpd.apache.org/docs/2.4/mod/prefork.html">prefork</a>

 MPM is required to
                run Rivet 2.2.3 (currently official release). The development version supports 
                also the <a href="http://httpd.apache.org/docs/2.4/mod/worker.html">worker</a>

 MPM 
                </p>

<h4>Dismissed Projects</h4>

<p>
            	We sadly announce the we discontinued development and support also for
                <a href="http://tcl.apache.org/websh/" target="_blank">Websh</a>

 (Nov 6th 2015).
                If anyone willing to take up this project and bring it
                back to life within the Apache Tcl project please let us know
                </p>

<p>
                In recent years we also dismissed
                <a href="http://tcl.apache.org/mod_tcl/" target="_blank">mod_tcl</a>
</p>


						</div>
					</div>
					<div class='col-xs-12 col-sm-12 col-md-4 col-md-offset-1 col-lg-4 col-lg-offset-1'>
						<div id="sidebar">
							<ul class='list-unstyled'>
				                <li id="base">
    <h2 class="sidebar-title">Apache Tcl</h2>
    <ul class="sidebar-inner-list list-unstyled">
        <li class="navitem">
            <a href="html/why.html">Why Tcl?</a>
        </li>
        <li class="navitem">
            <a href="html/contributing.html">Contributing</a>
        </li>
        <li class="navitem">
            <a href="html/tcl.html">Tcl Information</a>
        </li>
        <li class="navitem">
            <a href="html/about.html">About Us - Contact</a>
        </li>
    </ul>
</li>
<li id="projects">
    <h2 class="sidebar-title">Projects</h2>
    <ul class="sidebar-inner-list list-unstyled">
        <li class="navitem">
            <a href="http://tcl.apache.org/rivet/">Rivet</a>
        </li>
    </ul>
</li>
<li id="acknowledgments">
    <h2 class="sidebar-title">Acknowledgments</h2>
    <ul class="sidebar-inner-list list-unstyled">
        <li class="navitem">
            <a href="http://www.apache.org/foundation/thanks.html">ASF Sponsorship</a>
        </li>
    </ul>
</li>

							</ul>
						</div><!-- end #sidebar -->
						<div style="clear: both;">&nbsp;</div>	
					</div>
				</div>
			</div>
		</div>	
	</div>
</div>
<footer class="footer">
    <div class="container">
		<div class='text-center'>Copyright © 2015 Apache Software Foundation. All rights reserved. | 
			Site template created by Jasen Kim (<a href="http://www.ydotm.com">YDOTM</a>)</div>
    </div>
</footer>
<script src="templates/ydotm/bootstrap3.js" type="text/javascript"></script>

</body>
</html>

