<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Apache Rivet Contact</title>
    <link rel="stylesheet" href="../templates/wondrous/styles.css" type="text/css" />
</head>

<body>
    <div id="container">
        <div id="header">
            <h1><a href="../index.html">Rivet</a></h1>
            <h2 id="slogan">Webscripting for Tcl'ers</h2>
            <div class="clear"></div>
        </div>
        <div id="body">
            <div id="content">
                <h2>Apache Rivet Contact</h2>
                <div class="sez">
    <h4>Contact</h4>
    <p>
                To contact the <b>Apache Rivet</b>

 team, please write to our mailing list, at 
                <a href="mailto:rivet-dev@tcl.apache.org">rivet-dev@tcl.apache.org</a>

.
                        </p>
    <p>
                This list is archived here: 
                <a href="http://mail-archives.apache.org/mod_mbox/tcl-rivet-dev/">
                http://mail-archives.apache.org/mod_mbox/tcl-rivet-dev/</a>
    </p>
    <p>
                To subscribe, send email to 
                <a href="mailto:rivet-dev-subscribe@tcl.apache.org">rivet-dev-subscribe@tcl.apache.org</a>
    </p>
</div>

<div class="sez">
    <h4>Credits</h4>
    <p>
        <b>Apache Rivet</b>

 owes its existance to a lot of
                people.  First and foremost, to the people behind the 
                <a href="http://httpd.apache.org/contributors/">Apache Web Server</a>

 
                and the <a href="http://www.tcl.tk/community/coreteam/index.html">Tool
                Command Language</a>

.
                        </p>
    <p>
                Rivet's authors are
                <a href="http://wiki.tcl.tk/4843">Damon Courtney</a>

, 
                <a href="http://wiki.tcl.tk/3540">Harald Oehlmann</a>

,
                <a href="http://wiki.tcl.tk/1104">George Petasis</a>

,
                <a href="http://www.dedasys.com/davidw/">David Welton</a>

  and
                <a href="http://wiki.tcl.tk/83">Karl Lehenbauer</a>

. 
                        </p>
    <p>
        <a href="http://wiki.tcl.tk/20617">Massimo Manghi</a>

 is taking
                care of the project doing new developments and fixing bugs.
                He's also packaging Rivet for Debian/Ubuntu.
                        </p>
    <p>
                The nice logo was created by Randy Stanard,
                of <a href="http://dewittdesigns.com/">DeWitt Designs</a>

.
                        </p>
</div>



                <div class="contentbottom">
                    
                </div>
            </div>

            <div class="sidebar">
                <ul>
                    <li id="news">
    <h4>News</h4>
    <ul class="blocklist">
        <li class="navitem">
            <a href="rn%2d2%2d3.html">11 Nov 2017: Rivet 2.3.5 released</a>
        </li>
        <li class="navitem">
            <a href="rn%2d3%2d0.html">7 Jul 2018: Rivet 3.0.2 released</a>
        </li>
    </ul>
</li>
 
                </ul> 
                <ul>
                    <li id="home">
    <h4>Rivet</h4>
    <ul class="blocklist">
        <li class="navitem">
            <a title="A home for Rivet" href="../index.html">Rivet Homepage</a>
        </li>
        <li class="navitem">
            <a title="Home of Apache Tcl related stuff" target="asf" href="http://tcl.apache.org/">Apache Tcl Home</a>
        </li>
        <li class="navitem">
            <a title="Getting Rivet" href="download.html">Getting Rivet</a>
        </li>
        <li class="navitem">
            <a title="Hello World!" href="hello%5fworld.html">Examples</a>
        </li>
        <li class="navitem">
            <a title="The Rivet development team" href="about.html">About Us - Contact</a>
        </li>
    </ul>
</li>
<li id="tcl">
    <h4>Tcl/Tk</h4>
    <ul class="blocklist">
        <li class="navitem">
            <a title="The Tcl Developer Xchange" target="tclxchange" class="extern" href="http://www.tcl.tk/">
                The Tcl/Tk Language
                </a>
        </li>
        <li class="navitem">
            <a title="Tcl community wiki site" target="tclwiki" class="extern" href="http://wiki.tcl.tk/">Tcl'ers Wiki</a>
        </li>
    </ul>
</li>
<li id="manual">
    <h4>Rivet Documentation</h4>
    <ul class="blocklist">
        <li class="navitem">
            <a title="Rivet 2.1 Manual" target="rivetman2.1" href="http://tcl.apache.org/rivet/manual2.1/">Rivet 2.1</a>
        </li>
        <li class="navitem">
            <a title="Rivet 2.2 Manual" target="rivetman2.2" href="http://tcl.apache.org/rivet/manual2.2/">Rivet 2.2</a>
        </li>
        <li class="navitem">
            <a title="Rivet 2.3 Manual" target="rivetman2.3" href="http://tcl.apache.org/rivet/manual2.3/">Rivet 2.3</a>
        </li>
        <li class="navitem">
            <a title="Rivet 3.0 Manual" target="rivetman3.0" href="http://tcl.apache.org/rivet/manual3.0/">Rivet 3.0</a>
        </li>
    </ul>
</li>
<li id="support">
    <h4>Support</h4>
    <ul class="blocklist">
        <li class="navitem">
            <a title="Apache Rivet Bugzilla" class="extern" href="https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=Rivet">Bug Reports</a>
        </li>
    </ul>
</li>
 
                </ul> 
                <ul>
                    <li id="acknowledgments">
    <h4>Acknowledgments</h4>
    <ul class="blocklist">
        <li class="navitem">
            <a href="http://www.apache.org/foundation/thanks.html">ASF Sponsorship</a>
        </li>
    </ul>
</li>
 
                </ul> 
            </div>
            <div class="clear"></div>
        </div>
    </div>
    <div id="footer">
        <div class="footer-content">
            <p><a href="http://www.apache.org/">Apache Software Foundation</a> | Design by <a href="http://www.spyka.net">Free CSS Templates</a> | <a href="http://www.justfreetemplates.com">Free Web Templates</a></p>
        </div>
    </div>
    <div style="text-align: center; font-size: 0.75em;">Design downloaded from <a href="http://www.freewebtemplates.com/">free website templates</a>.</div></body>
</html>

