drewcsillag/skunkweb
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
LICENSE
-------
Copyright (C) 2001-2003, Andrew T. Csillag <drew_csillag@yahoo.com>,
Jacob Smullyan <smulloni@smullyan.org>
All rights reserved.
This program is free software; you can redistribute it and/or modify
it under the terms of either:
a) the GNU General Public License as published by the Free
Software Foundation, version 2, or
b) the "SkunkWeb License" which comes with this Kit.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See either
the GNU General Public License or the SkunkWeb License for more
details.
You should have received a copy of the SkunkWeb License with this
Kit, in the file named "SkunkWebLicense". If not, we'll be glad
to provide one.
You should also have received a copy of the GNU General Public
License along with this program in the file named "COPYING". If
not, write to the Free Software Foundation, Inc., 59 Temple Place,
Suite 330, Boston, MA 02111-1307, USA or visit their web page on
the internet at http://www.gnu.org/copyleft/gpl.html.
README for SkunkWeb
-------------------
The installation instructions are in INSTALL. The STML (Skunk Template
Markup Language), operations, and developer manuals are under
docs/html (in html format) and docs/paper-letter (in pdf format).
Starting the SkunkWeb Server
------------------------------
Edit <prefix>/etc/sw.conf to taste.
Run <prefix>/bin/swmgr start
Hit http://localhost:8080 and check to see that you get the
congratulations page.
If you built mod_skunkweb (to use with apache), add the contents of
SkunkWeb/mod_skunkweb/httpd_conf.stub to the end of your httpd.conf
(editing to taste). Stop and start apache and hit it and check that
you get the congratulations page. N.B. Chances are fair that if
you are using Apache to front skunkweb, you can:
1) remove httpd from the services list in sw.conf
and
2) comment out HTTPListenPorts in sw.conf (not necessary, actually,
as they will be ignored if you do 1) above).
SkunkWeb, Smell the power!
Bugs
------------------------------
Yep, we probably got a few hanging out. Send email to either myself
(Drew Csillag), Jacob Smullyan (see addresses above), or better yet,
the mailing list. You can either join the list (please do!) at
http://lists.sourceforge.net/lists/listinfo/skunkweb-list
Or if you don't want to join the list, you can send email to
skunkweb-list@lists.sourceforge.net.
Support
------------------------------
Currently, you have a few options:
* use the mailing list
* Contact Drew Csillag <drew_csillag@yahoo.com> and/or Jacob Smullyan
<smulloni@smullyan.org> for rate information.
(from docs/Pitch)
What is it?
------------------------------
SkunkWeb is (yet another) web application server. The things that make it
different are:
Uses Python
* Python is easy to learn for both new programmers and experts alike
* senior programmer types like it too (vs. say tcl)
* extensible with C/C++ for speed and/or linkage to C/C++ libraries
via static *or* dynamic linking
Extensible
* Relatively simple extension API
* can easily handle authentication, custom url building/parsing
schemes and custom tags
Encourages component based design
* more than just "include"
* not just another ASP/JSP like thing
* a powerful templating language
* encouraged by caching options (see below)
* component output can be either HTML or Python objects
* can write components in either STML or Python
* can also call components on other skunkweb servers
Message Catalogs
* makes multi-lingual sites much easier
* support variable substitution in messages
Speed
* templates are compiled to Python bytecode
* extensive caching (to disk and optionally memory) of:
o compiled forms of templates
o digested message catalogs
o output of components
o python modules and python components
* cache *is* sharable between machines if using a
shared filesystem! (can be more than one shared filesystem
for speed, redundancy and flexibility)
* caching is flexible and as finite as your disk space
* components can be rendered after the response is sent if
a slightly stale version is available --- resulting in
better response times via deferred components
Documentation
* extensive documentation available in HTML, PostScript, PDF & text
--well not yet, but getting there
* have automatic documentation tools to generate documentation for
STML templates (but don't use the manual stuff, it sucks).
Process Model
* Uses multi-process, versus multi-threading which makes better
use of multiple processors (because of the global interpreter
lock in Python), and is safer in that if one process crashes,
it won't kill the entire server.
No magic (zodb <wink>).