*** [Tomasz Kosiak] Sandbox *** Below is my sandbox --[tkosiak] Click [Formatting Rules%|%here%|%] for more info on formatting rules or http://wiki.tcl.tk%|%here%|% to go to the home page ---- *** Standardized 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. They usually have no support for handling multipart/form-data POSTs, HTTP methods other then GET/HEAD/POST, international encodings, other auth schemes than basic, custom errors and multi-threading, Even established Tcl-only projects like TclHttpd and Wub doesn't support 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). AOLserver on the other hand is overkill for embedding into application. So there is a need for another HTTP server suitable for easy web enabling application. Nowadays it has to supprt rich web application (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) 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]). ---- *** Unified HTTP/1.1 server and client library in pure Tcl *** http://wiki.tcl.tk/20887 - tothttpd = TheOneTclHTTPD (''the one to rule them all'') * [Tomasz Kosiak] * Difficulty: medium Using Tcl you can construct simple web server in hundred lines of code so in this wiki there are dozens 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 quite a few Apache modules which allows Finally there is AOLserver high performance webserver developed in C with ... Tcl is used to enhaced application with scripting - it can be used to web enabled by sourcing pure Tcl HTTPd implementation. Elegent implementation for minimum feature complete applications server modular design extensible with modules to handle complexity There is missing simple - feature - crippled there are many possible tasks in that area for students - clarification - sistematization - writing test cases testing features and implementation - like db what is [AOLserver] what is [GD] what we've got and where where is a problem to be solved possible tasks Consolidate best practices from existing custom-built Tcl web servers into one multiplatform (unix/windows/embedded) embeddable, multi-threaded application web server in pure Tcl - modular, supporting HTTP/1.1 mechanisms like pipelining, caching, streaming data. Something like Mongrel for Ruby or Simple for Java. [wub] and [tclhttpd] should be considered in the plan Full HTTP/1.1 support in core http library (smaller part or counterpart of above [tothttpd]) This problem is already discussed in the wiki [http]. There is also an implementation http2.6 in [tclsoap] project at [http://tclvfs.cvs.sourceforge.net/tclvfs/tclvfs/http2.6/] * '''Benefit to student''' Experience in HTTP protocol internals, developing an Tcl API for very common problem, multi-threaded development in Tcl Practical insight into HTTP/1.1 protocol internals. Building API in Tcl to solve very common problem. Network programming. * '''Benefit to community''' There will be one fully functional HTTP server to embed in Tcl application instead of many non functional ones. Web application written to it's API could be ported to [AOLServer] (fully blown web server developed in C) as we plan to provide with compatibility API. Currently Tcl http library supports only HTTP/1.0. Supporting HTTP/1.1 out of the box will allow to easily use from Tcl advanced mechanism like streaming, chunk transfer encoding, persistent connection, etc. ** Cross-platform framework for database application UI development based on Tcl/Tk/Tile *** http://wiki.tcl.tk/20889 * [Tomasz Kosiak] * Difficulty: medium based cross platform framework for development of database application UI (like build with RAD's such as Borland Delphi)** Tcl/Tk/Tile framework for building form-based database application as pioneered by Borland Delphi. Project aim is to compose sample application from available components, integrating it and showing how to use and glue them together to accomplish database UI application in Tcl with native look & feel. * '''Benefit to student''' Getting to know Tcl/Tk toolkit with native widget support by Tile extension (integrated in Tk as ttk::* namespace). * '''Benefit to community''' Consolidation of separate components needed to build very common kind of application. ---- THIS IS stolen TEMPLATE for GSoC 2008 ***HTTP Server in pure Tcl (the one to rule them all)*** [tothttpd] TheOneTclHTTPd * [Tomasz Kosiak] * Difficulty: medium what is [AOLserver] what is [GD] what we've got and where where is a problem to be solved possible tasks * '''Benefit to student''' * '''Benefit to community''' ---- !!!!!! %| enter categories here |% !!!!!!