overview

Smisk is basically comprised of three modules:

  • smisk.core – I/O handling, FastCGI server, HTTP transaction handling, manages sessions, file uploads, process forks, etc. This module is implemented in native machine code and provides a minimal set of functionality and a low level of abstraction.
  • smisk.mvc – (Transparent) Content Negotiation (TCN/CN), class tree-to-URL mapping, templating, ORM (Elixir/SQLAlchemy), etc. The smisk.mvc module is the simples to use of the three modules presented here. It provides a ready-to-go environment for rapid development and automatically makes HTTP transactions, including any payloads, abstract to the implementation – you code does no need to know anything about the client peer and it’s capabilities.
  • smisk.wsgiWeb Server Gateway Interface fully complying to PEP 333. This module can be used to run existing applications, which uses WSGI, on Smisk.

smisk.core

  • minimal – a minimal application based on smisk.core.
  • input – testing all kind of user input like posting forms, uploading files, cookies, sessions…

smisk.mvc

  • minimal – a minimal application based on smisk.mvc.
  • key-value store – illustrates using the full power of HTTP request methods and the smisk.ipc module which provides concurrent data sets across multiple processes.
  • kittens-orm – a classic CRUD-example, using a SQLite database to keep track of cute little kittens.
  • xml-rpc – XML-RPC example application. This illustrates how to tighten up TCN/CN to only accept and serve a certain type of payloads. Also includes code for a simple Python client (in the comments of app.py), interfacing with the service.
  • xspf_service – An application handling XSPF playlists.

smisk.wsgi

  • minimal – a minimal application based on smisk.wsgi.