Project

General

Profile

DesignXMPP analysis » History » Revision 16

Revision 15 (Adrian Georgescu, 04/01/2012 05:20 PM) → Revision 16/17 (Tijmen de Mes, 05/07/2012 11:14 AM)

This page has been moved 
 h1. Software Candidates Analysis 




 In this phase the existing XMPP libraries will be analyzed and one will be chosen to "Sylkserver":http://projects.ag-projects.com/projects/sylkserver/wiki/DesignXMPP_analysis be used throughout the project. 


 h2. Requirements 


 * Written in Python (C/C++ could also be used, but a wrapper would need to be written) 
 * Support for XMPP server and/or component 
 * Ability to use it with the current model used by SylkServer 
 ** Green threads 
 ** Callback based IO 


 h2. Software Libraries Evaluation 


 The following aspects were considered when evaluating a given library: 

 * Met requirements stated above 
 * Is it actively maintained? 
 * Example use cases 
 * Deployments in real-world scenarios 
 * Perceived complexity to integrate it with SylkServer architecture 

 List on xmpp.org http://xmpp.org/xmpp-software/libraries/ 
 

 h2. Selected XMPP library 


 After analyzing candidate libraries *Wokkel* was the chosen one for the following reasons: 

 * Implemented on top of Twisted, which makes integration with SylkServer straightforward 
 * Support for both component and XMPP server models, allowing for flexibility in implementation 

 http://wokkel.ik.nu/ 

 * Plugin architecture, 'subprotocols' implementing different XEPs 
 * Client and server component support 
 * XMPP server-to-server support (s2s) 
 * Designed to be used with Twisted (reactor model) 
 * Active development 


 h2. Selected SIP Library 


 SIP SIMPLE SDK http://sipsimpleclient.com used by SylkServer