Rejasca is a modern and extensible RPC server for RIAs, written in Python and JSON. It aims to support a large number of programming languages on the client side, with Python and Javascript bindings already available. It comes complete with its own IDL, a flexible security system, and tools for automatic service discovery and documentation.

Quick Links

[ Download Rejasca ] [ Documentation ] [ SVN Repository ] [ Bug Tracking ]

Summary of Features

  • Python on the Server Side
    Rejasca services are defined as Python functions or methods and are organized in packages and modules.
  • Anything on the client side
    We already provide bindings for Python and Javascript, with more on the way.
  • JSON in the Middle
    Compared to alternatives such as XML and YAML, JSON is more suited for RIAs for a number of reasons. Having this in mind, we designed ReDL, Rejasca’s IDL, as a dialect of JSON, and also opted to use JSON exclusively for communication between the server and its clients.
  • Automatic Service Discovery and Documentation
    The server provides several built-in service discovery facilities that provide a high degree of granularity. For each service, a great deal of information can be retrieved, including parameter data types, return value data type(s), and documentation. The information is provided in a highly structured way that can easily be used by third party software.
  • Security
    Rejasca comes complete with a security subsystem that provides full user authentication and authorization facilities. Users are organized into groups, and each group is associated with a set of permissions that specify which services, modules, or packages it can access.
  • Extensibility
    We designed the server software with extensibility in mind. Virtually all components, including those that implement the security subsystem, IDL, and transport mechanism, can be easily extended or replaced.


  • Python on the Server Side
    Currently, Rejasca services must be coded in Python. And we don’t really have no plans to support other languages.
  • Python 2 Now, Python 3 in the Future
    The current version of Rejasca is based on Python 2.x. However, we’ll probably switch to 3.x at some point in the near future.


Why another RPC server?

I needed a JSON-based RPC server that could be used for rich Internet applications development with Python on the server side. I also needed this server to be feature-rich, especially in the areas of service discovery (a’la SOAP/WSDL) and security. Although some nice products - such as JSON-RPC - did exist at the time, I couldn’t find one that met all of my needs. So, I decided to roll my own.