Created: 2008-05-26 15:40
Updated: 2017-05-11 05:50



This project is no longer developed but left online for inspiration. A more pragmatic solution is WsgiService started by the same author as servicegen.


servicegen is a small domain specific language to specify web services. The idea is to lower the barrier for creating a new service.

The simple service description will abstract a few common tasks:

  • Getting input parameters and validate them.
  • Get data from other web services or a database.
  • Configuration handling for deployments.
  • Logging.
  • Caching using e.g. memcached.
  • Correct handling of HTTP caching.

A few features can be provided based on the input format:

  • Create service in various programming languages and frameworks. I can imagine creating output for, Okapi, Spring, etc. This would allow to easily switch deployment platform depending on current requirements.
  • Create documentation for the service in a consistent format.
  • Maybe even create clients for various programming languages.


Started on May 26, 2008 by Patrice Neff during a hack day. Currently doesn't do much. There is:

  • An ANTLR grammar for a basic service description.
  • A generator in Python which gives some output based on what it parsed.
  • An extensive grammar documentation showing what's the intention.
  • An output target to create a basic application.
  • An output target to create a basic HTML documentation.


On a shell execute like this:

$ ./ docs/meteo-service.txt

Design Choices

  • Variables can't change their value once the value is defined. This way on assignment of each variable it can be determined whether the variable can be read from a cache or not depending on the keyword "cached".


  • Specified but to implement:
    • Caching
    • Caching of output blocks
  • Custom "not found" handler
  • Add JSON output
Cookies help us deliver our services. By using our services, you agree to our use of cookies Learn more