tothttpd = The One HTTP Daemon (web server) to rule them all. Project envisioned by [tkosiak] and probably many others before (that's why there is so many tcl-only web servers) Currently I'll have * codebase based on [wub] * codebase based on [namespace ensemble] with modules architecture based on [Apache] modules * multi-threaded architecture based on [AOLserver] I seek volunteer to continue that work. There are 2 experienced persons (my and my college) who previously investigated this area. There was written an master degree dissertation about AJAX application support by webserver done in my company DAC System by student from The Faculty of Electronics, Telecommunications and Informatics ETI of GdaƄsk Technical University (http://www.eti.pg.gda.pl/) . ---- Below is temporarily withdrawn proposal for Google Summer of Code 2008 *** Embeddable HTTP/1.1 web server and client library in pure Tcl *** http://wiki.tcl.tk/20887 - tothttpd = TheOneTclHTTPD (''the one to rule them all'') * [Tomasz Kosiak] [Michal Malinowski] * Difficulty: easy-medium Using Tcl you can construct simple web server in hundred lines of code so in this wiki there are many examples of such simple HTTP servers. [TclHttpd] and [Wub] are fairly complex web servers written in pure Tcl which aspire to be general purpose HTTP servers. There are also quite a few [Apache] modules which allow to build dynamic websites in Tcl. Finally there is [AOLserver] - developed in C, multithreaded, Tcl-enabled, high performance web server used for large scale, dynamic web sites. The problem is that simple Tcl-only web servers are rather feature-crippled. [CMcC] I don't believe this is true. They usually have no support for handling multipart/form-data POSTs, [CMcC] Wub and tclhttpd supports these HTTP methods other then GET/HEAD/POST, [CMcC] Simple added for Wub and tclhttpd international encodings, [CMcC] Wub supports these. other auth schemes than basic, [CMcC] tclhttpd supports Digest (I wrote it) Wub supports neither (because they are useless.) custom errors [CMcC] Wub supports these and multi-threading, [CMcC] Both Wub and tclhttpd support multithreading Even established Tcl-only projects like [TclHttpd] and [Wub] doesn't fully support HTTP/1.1 advanced mechanisms like persistent connections, request pipelining, chunked encoding, byte ranges, deflate & [gzip] transfer encodings, resource caching headers (e-tag, if-modified-since, expire). [CMcC] This is false. Wub supports all of these but byte ranges. tclhttpd supports 1.0 persistent connections [AOLserver] on the other hand is overkill for embedding into application. So there is a need for another Tcl-only HTTP server suitable for easy web enabling application. [CMcC] thinks this is not true. Nowadays it has to support rich web applications (build with [AJAX] & Flex) that often require mentioned capabilities to achieve best user experience. Therefore this summer (2008) [tkosiak%|%I%|%] and my [phreaman%|%former student%|%] (who analyzed those problems in his last year master degree dissertation) [CMcC] would like to see the masters' degree dissertation which claims Wub hasn't these facilities. plan to further enhance prototypes we've already build - unfortunately only as a part time assignment. We seek highly motivated student to join our team (full time) so we could direct to him/her implementation of selected problems. His role would be also to write automated test cases so in this process we expect to refine standard Tcl HTTP client library to fully support HTTP/1.1 (see [http]). [CMcC] points out that there is a Wub client too. * '''Requirements for students''' Medium experience in web app development (for example with [PHP]), basic knowledge of Tcl & HTTP. Earlier HTTP/1.1 standard self studies. Being able to meet personally in the early stages of the project is a big plus. * '''Benefit to student''' Gaining very practical insight into HTTP/1.1 protocol internals and its usage in [RIA], mastering advanced Tcl coding techniques, especially network programming. * '''Benefit to community''' Unification of existing Tcl-only servers into HTTP/1.1 functional one. We will try to provide compatibility API for AOLserver ns_* so any application could be upsized to fully blown web server in C if needed. Further Tcl-only HTTP/1.1 client library advancement (we plan to start with http2.6 from [tclsoap] project at [http://tclvfs.cvs.sourceforge.net/tclvfs/tclvfs/http2.6/] [vtk] I think a much better exercise and use of your time would be creating good documentation for existing servers. Everybody wants to do programming (including me) :) but no one has the time to create documentation because it's time consuming and boring. So what if you create another server and it will take you 5 years and by that time it will be obsolete and nobody will use it anyway because no one will know how to use it. Pardon my cynicism. :) <> Internet