Mustaine is a Python implemention of the Hessian 1.0.2 specification, a binary web services protocol. The library currently provides a standard HTTP-based client as well as a general-purpose serialization library. Server support is planned.
Testing against Caucho's reference service:
from mustaine.client import HessianProxy service = HessianProxy("http://hessian.caucho.com/test/test") print service.replyDate_1()
An object can be served via WSGI by wrapping it with the provided mustaine.server.WsgiApp. An object's methods are only exposed if decorated with mustaine.server.exposed decorator. For example:
from mustaine.server import exposed class Calculator(object): @exposed def add(self, a, b): return a + b @exposed def subtract(self, a, b): return a - b
The following code will serve a Calculator object on port 8080 using the Python reference WSGI server:
from wsgiref import simple_server from mustaine.server import WsgiApp s = simple_server.make_server('', 8080, WsgiApp(Calculator())) s.serve_forever()
This object can now be accessed over the network as already described:
>>> from mustaine.client import HessianProxy >>> h = HessianProxy('http://localhost:8080/') >>> h.add(2, 3) 5
Up-to-date sources and documentation can always be found at the mustaine GitHub site.