A few days ago I pushed papyrus_mapproxy on Github. The objective of papyrus_mapproxy is to make it easy to embed MapProxy in Pyramid apps.

This new module is a good opportunity for me to describe what I've been up to with Papyrus.

I have developed five Papyrus modules: papyrus, papyrus_tilecache, papyrus_mapproxy, papyrus_ogcproxy, and papyrus_mapnik. The last four are companion modules for the first one.

I wrote these modules to learn Pyramid, and assess its extensibility, with the goal to eventually provide extensions that will ease the work of Pyramid developers working on mapping apps.

The main module, papyrus, provides conveniences for creating feature web services. For example, it provides a GeoJSON renderer, and a full implementation of the MapFish Protocol.

The papyrus_tilecache and pyramid_mapproxy modules make it easy to embed TileCache and MapProxy in Pyramid apps, respectively.

The papyrus_mapnik module aims to ease using Mapnik in Pyramid apps. This module is experimental, and would need some work to be actually useful.

The papyrus_ogcproxy provides a proxy service for OGC protocols. It was developed for working around the Same Origin Policy implemented in browsers.

I believe there's high value in embedding services, like tile rendering and caching services, in the web application. That can greatly ease deployment. It also allows leveraging transverse layers of the application, like the security layer.

Building a consistent, well integrated, and scalable application that requires external independent services is, to say the least, a big challenge I think. Assembling different types of services within a single application, relying on horizontal scaling, is much more appealing to me.

Anyway, any feedback on Papyrus is welcome!

Comments !