twork (original) (raw)

twork
=====

twork is a Tornado Application FrameWork, it supports plug-in module
injection, the module called TworkApp.

Features
--------

Plug-in
~~~~~~~

+ TworkApp as a plug-in injected to Twork

Web App Framework
~~~~~~~~~~~~~~~~~

+ Control(WebApplication)/Model(RequestHandler) separation, users
simply writing Handler Model
+ Web RequestHandler should be Inherited from
twork.web.action.base.BaseHandler

Unified Infrastructure
~~~~~~~~~~~~~~~~~~~~~~

+ Web access logging
+ Status statistics
+ Overload protection
+ IP checking
+ Others

Open Design
~~~~~~~~~~~

+ Not only for web application framework
+ Can be directly embedded other control model, like that the custom
protol server-app
+ Custom Logging Support

Scaffold Support
~~~~~~~~~~~~~~~~

+ Build your own Tornado Application
+ As a app module injected to twork

Easy Maintainable
~~~~~~~~~~~~~~~~~

+ Script Tools: log cut, log reopen, tworkd kill and others
+ Consistent process name: twork::hello/1.0.0.0

Usage
-----

Environment
~~~~~~~~~~~

virtualenv is recommend.

+ `virtualenv http://www.virtualenv.org/en/latest`_ is a tool to create isolated Python environments
+ Initialize and enter the app virtualenv
+ For example, creating the hello application here

Install twork
~~~~~~~~~~~~~

+ pip install `twork https://pypi.python.org/pypi/twork`_
+ easy_install `twork https://pypi.python.org/simple/twork`_

TworkApp Build
~~~~~~~~~~~~~~

Create your own tornado application based on twork.

+ twork-admin -app=hello -prefix=~/workspace
+ cd ~/workspace

Web Handler(Optional)
`````````````````````

+ write your web request handler in hello/hello/web/action directory,
the handler should be Inherited from twork.web.action.base.BaseHandler
+ add uri:handler map to HANDLERS in hello/hello/app.py

Run TworkApp within twork
~~~~~~~~~~~~~~~~~~~~~~~~~

+ make install
+ tworkd -app_module=hello.app OR tworkd -config_file=conf/twork.conf

Access the web server
~~~~~~~~~~~~~~~~~~~~

+ http://localhost:8000/v1.0/hello/stats
+ http://localhost:8000/v1.0/twork/stats

Check Htpp Response
~~~~~~~~~~~~~~~~~~~~

+ Server: TWS/2.0.0.5
+ TworkApp: HELLO/1.0.0.0

Requirements
------------

The following libraries are required

+ tornado==4.2.1
+ setproctitle==1.1.8
+ nose==1.3.3

Issues
------

Please report any issues via `github issues https://github.com/bufferx/twork/issues`_