Concordance
- a harmonious state of things in general and of their properties (as of colors and sounds);
- congruity of parts with one another and with the whole;
- a robust XMPP service framework for Python 3.1
Introduction
XMPP (eXtensible Messaging and Presence Protocol) is an excellent foundation for countless custom services. Concordance is a framework for building and deploying those custom XMPP services rapidly.
Design
Concordance is a Python 3.1 package.
Extensions are each handled by a Python class which is passed XMPP stanzas in the specified XML namespace. Concordance includes many standard XMPP extensions (in concordance.extensions) which can be inherited and modified. Many services can run in a single Concordance process, each with their own domain, and each of those services can support a unique set of extensions.
Many extensions use the Genshi XML Templating System to simplify customization. We currently maintain a port of Genshi for Python 3 which may be useful to other Python 3 projects.
Core XMPP stanza routing and session management are performed in background "no GIL" glib threads for speed. This design allows Concordance to utilize multiple CPU cores where "pure Python" servers are usually limited to one core by Python's Global Interpreter Lock (GIL).
Status
Concordance is pre-1.0. There is no public release yet and the code is very much in flux. While we've had test servers running, it should not be used for anything even remotely public yet.
We are currently migrating the C code to a new GObject-based XMPP server project to make Concordance a pure-Python service framework.
