Muntjac 1.0.1

# Muntjac

Version 1.0.1 CHANGELOG »

- API Documentation »
- Discussion Forum »
- Issue Tracker »
- Muntjac Home »

- #### Welcome to Muntjac

  ##### Web Application GUI Toolkit

  Muntjac is a translation of Vaadin to the Python programming language. It is similar to GUI toolkits for desktop applications, such as PyQT, wxPython and PyGTK. However, it can be used to create dynamic, browser independent, web applications. There is no need to write HTML, Javascript or RPC code, just server-side Python.

  ##### Code Examples

  - ###### Hello World – The classic example

    HelloWorld.py • Run the app » (mirror 1)

  - ###### Calculator – Simple logic & event handling

    Calc.py • Run the app » (mirror 1)

  ##### Rich Widget Set

  Muntjac includes a wide range of widgets and layout types. Styling is achieved using CSS.

  - ###### Sampler – Core component examples

    Run the app » (mirror 1)

  - ###### Simple Address Book

    Run the app » (mirror 1)

  - ###### Muntjac Tunes – CSS styling example

    Run the app » (mirror 1)

  ##### Browser Independent

  Muntjac supports all of the main browsers without the need for plug-ins to be installed by the end user. All of the components are compatible with:

  - Internet Explorer
  - Mozilla Firefox
  - Safari
  - Opera
  - Google Chrome

- #### Download & Install

  ##### Python Implementations

  Muntjac is written in pure Python and currently does not have any C extensions. It has been tested on:

  - CPython v2.6,
  - PyPy v1.6 and
  - Iron Python v2.7

  It is also possible to run Muntjac applications on Google App Engine and Heroku.

  ##### Minimal Dependencies

  To run Muntjac you must install:

  - Paste – WSGI tools
  - Paste WebKit – WSGI servlet implementation
  - Babel – Internationalization utilities

  To run the test suite you must also install:

  - Mox – Mock object framework

  All of these libraries are pure Python and available from the PyPI.

  ##### Cheese Shop

  Muntjac is available from PyPI and can be installed with setuptools, disutils or pip, for example:

        $ easy_install muntjac

  Alternatively, you can download the Muntjac source archive and run the setup file directly:

        $ python setup.py install

  Windows users may prefer to download and run the installer.

  ##### Source Code

  The Muntjac source code is hosted on GitHub. You can checkout the latest developments with:

        $ git clone http://github.com/rwl/muntjac.git

  or download a zip archive.

- #### Quick Start

  ##### Running Locally

  Installing Muntjac will create a `muntjac` command on your path. To run the test suite type:

        $ muntjac -t

  Otherwise, running the command will start a demo server. To list the available options type:

        $ muntjac -h

  ##### Sampler Widget Set

  Muntjac includes only a default widget set as standard. The sampler demo requires additional themes and widget sets. To run the sampler first download both the default and sampler widget sets. Then extract them to the same directory.

  - Muntjac downloads

  Then point `muntjac` to the new VAADIN directory using:

        $ muntjac --contextRoot=/path/to/VAADIN/directory

  Note that the value is not the VAADIN directory itself, but the parent directory that contains it.

  ##### Simple Application

  To create a Muntjac application first define a subclass of Application:

      class HelloWorld(Application):

          def init(self):
              main = Window('Hello window')
              self.setMainWindow(main)

              main.addComponent(Label('Hello World!'))

  Pass the new class to ApplicationServlet, wrap the resulting WSGI application in Paste session middleware and serve:

      wsgi_app = ApplicationServlet(HelloWorld, debug=True)

      wsgi_app = paste.session.SessionMiddleware(wsgi_app)

      httpd = make_server('localhost', 8080, wsgi_app)
      httpd.serve_forever()

  Navigate your browser to `http://localhost:8080/`. For further information please refer to the sampler source code views and the API documentation.

- #### Community & Support

  ##### Mailing List

  The mailing list a good place to ask questions, help others, discuss ideas or just share new projects.

  - Join the list

  ##### Issue Tracker

  Issues can be reported through the Muntjac issue tracker to ensure new bugs are not lost.

  - Muntjac bug tracker

- #### License & Copyright

  ##### AGPL / Commercial

  Muntjac is currently available under both the GNU Affero General Public License version 3 and a commercial license. Once the development costs have been recouped it we be released under the same Apache Software License 2.0 that is used by Vaadin.

  - GNU Affero General Public License
  - Commercial Licensing