Toolatra

Difference between version 0 and 1 - Previous - Next
[https://raw.githubusercontent.com/timkoi/toolatra/master/logo.png]

**Toolatra**
'''Toolatra''' is a modern Sinatra-like micro web framework for writing HTTP Tcl web applications.


***Features***
   * Sinatra-like DSL
   * does not depend on anything, except for [Tcllib] (though, Toolatra works only with Tcl 8.5 and newer)
   * a built-in template engine and layout engine
   * a built-in web server that easily integrates with Apache or nginx


***Some examples***

****Hello world****

''app.tcl'' code:
======
#!/usr/bin/env tclsh
package require Toolatra

get / {
     render {Hello world!}
}

get /+name {
     render "Hello, [dict get $params name]!"
}

post / {
     if {$rawData != {}} {
         render "Hello, $rawData (via POST request)!" 
     } else {
         render {Hello world (via POST request)!} 
     }
}

run
======

How to run:

======
$ tclsh8.5 app.tcl
======

The app will be running at ''http://localhost:5050''


   * If you go to ''http://localhost:5050'' via your web browser, you should see ''Hello world!''
   * If you go to ''http://localhost:5050/Tim'' via your web browser, you should see ''Hello, Tim!''
   * If you send an empty POST request to ''http://localhost:5050'', you should get ''Hello world (via POST request)!''
   * If you send a POST request with ''Jane'' sent as the data, you should get ''Hello, Jane (via POST request)!''



****Cat Language Translator****

Both the current and the previous version of '''Cat Language Translator''' are written 100% in Tcl and Toolatra. The source code of the first version can be found here: https://github.com/timkoi/catlanguage-web

***Links***
   * Toolatra git repo: https://github.com/timkoi/toolatra
   * Bug tracker: https://github.com/timkoi/toolatra/issues