What | Wapp |
Where | https://wapp.tcl.tk/ |
Description | A lightweight, secure web microframework in a single source file. Serves HTTP/1.1 directly, but supports CGI and SCGI as well. Aims for a small, easy-to-learn user API. |
Prerequisites | Tcl 8.6. |
Updated | 2018-02-07 |
Author | drh |
License | 2-clause BSD |
Download edit
fossil clone https://wapp.tcl.tk/index.html wapp.fossil
mkdir wapp
cd wapp
fossil open ../wapp.fossil
tclsh tests/test01.tcl
or see other alternatives at
https://wapp.tcl.tk/index.html/doc/trunk/docs/download.md
See also edit
Discussion edit
[DEC
]: And you get hold of it by......?
AM See the link above
[Dec
] :Which one?, No simple zip file then..
The following code excerpt results in no image being shown in browser. However, when I bring up the text view of the HTML (via ctrl-U on Chrome browser) and click the link from there, the image shows up. Why does the image not show up through wapp-default? 'Hello' prints as expected. Thanks in advance, Doug. (I replaced the real domain with example.com)
#!/usr/bin/tclsh
source <full_path>/lib/wapp/wapp.tcl
proc wapp-default {
wapp-subst {
<img src="http://www.example.com/IMG_1870.JPG" style="width:75%">
<br><b>Hello</b> World!
}
}
wapp-start
dbohdan 2018-03-27: That's a consequence of Wapp's default
Content Security Policy
. (One of Wapp's design goals is to be
secure by default
, so the default policy is as strict as possible.) You can use
curl -v and your Web browser's Console [
1] [
2] to debug the Content Security Policy.
Here is an example of how you can configure the Content Security Policy to allow images from a certain host:
#! /usr/bin/env tclsh
source wapp.tcl
proc wapp-default {} {
wapp-content-security-policy \
{default-src 'self'; img-src 'self' https://picsum.photos}
wapp-subst {
<!doctype html>
<img src="https://picsum.photos/450/300" style="width:75%">
<br><b>Hello</b> World!
}
}
wapp-start $::argv