8

I am interested in developing a chat engine using XMPP and I want to use Python for my web development. Although, XMPP will be independent of this Python work but in case I want to write wrapper, then I will have to use that language.

So, I want to know which XMPP server (preferably open source) should I go with?

And which python libraries are good for using XMPP service?

Him
  • 103
  • 2
  • 4
  • 7

1 Answers1

14

The only (maintained) effort for an XMPP server is wokkel which builds upon Twisted. That said, wokkel lacks a ton of features that other non-python servers give. Additionally wokkel aims at providing the library to build a server and it would require a non-trivial amount of effort to actually build a fully functional XMPP server providing support for common XEPs.

On the good side: You don't really need a python server. You can use a ejabberd, tigase, openfire (name here your preference). You can write all your custom logic/protocols and components in python and connect them seamlessly to that server. For that particular use wokkel and Twisted are an excellent choice. Another great library is SleekXMPP.

ggozad
  • 13,105
  • 3
  • 40
  • 49
  • 1
    Point taken and thanks for your reply. Actually I want to deploy it on a large scale, so decided to go with ejabberd. I have installed it and configured it. But as I am new to it, I am not able to get started with things quite easily. The next step possibly is to install a client. But I am not able to get where to start with like a HelloWorld program. So, can you guide me to work upon that. Thanks in advance. – Him Mar 14 '12 at 07:20
  • 2
    Here's a example of a component for wokkel: http://metajack.im/2008/09/25/an-xmpp-echo-bot-with-twisted-and-wokkel/ and here is how to build simple clients with it: http://wokkel.ik.nu/wiki/XMPPClients . Good luck, it will look complex in the beginning, but things do get clear after ;) – ggozad Mar 14 '12 at 16:45
  • ejabberd I believe requires erlang for extending, and erlang is one strange duck of a language (although innately well suited for big scale deployment), and seems to be the mutant child of prolog and haskell. Got a comp-sci degree? If not, it might be bit of migrane inducing language to learn.. It does however have an xml-rpc interface which can be do most tasks required of scripting (using the python wrapper) but I dont believe it can do routing which is a problem. – Shayne Oct 06 '16 at 12:24