Git Product home page Git Product logo

djabberd's Introduction

This is the README file for DJabberd, a scalable, extensible Jabber/XMPP server.

Please refer to 'perldoc DJabberd' after installation for details.

Description

DJabberd was the answer to LiveJournal's Jabber (XMPP) server needs. We needed:

  • good performance for tons of connected users
  • ability to scale to multiple nodes
  • ability to hook into LiveJournal at all places, not just auth

Basically we wanted the swiss army knife of Jabber servers (think qpsmtpd or mod_perl), but none existed in any language. While some popular Jabber servers let us do pluggable auth, none let us get our hands into roster storage, vcards, avatars, presence, etc.

So we made DJabberd. It's a Jabber server where almost everything defers to hooks to be implemented by plugins. It does the core spec itself (including SSL, StartTLS, server-to-server, etc), but it doesn't come with any way to do authentication or storage or rosters, etc. You'll need to go pick up a plugin to do those.

You should be able to plop DJabberd into your existing systems / user- base with minimal pain. Just find a plugin that's close (if a perfect match doesn't already exist!) and tweak.

Installation

DJabberd follows the standard perl module install process

perl Makefile.PL make make test make install

The module uses no C or XS parts, so no c-compiler is required.

Documentation

The documentation for DJabberd is somewhat lacking. Although 'perldoc DJabberd' will give you the basics, and pointers for hackers, the best way to get started is by delving into a demo application.

In the demo/ directory, you'll find a fully functional demo application, which consists of:

  • A running server
  • 2 pre-configured clients
  • An echo bot that is on all clients' roster

The demo application is heavily commented, and it's suggested you read through the source code & comments to understand how it works.

Start by reading the demo/demo.conf file, and follow the classnames from there.

To start the server, type the following commands from the same directory as this README:

perl -Ilib -Idemo/lib djabberd --conffile demo/demo.conf

You can now connect to it using the standard jabber ports on your localhost. Read the demo/demo.conf file for additional notes.

For extra diagnostics from the server, you can increase the debuglevel by setting the following environment variable:

set LOGLEVEL=DEBUG

In the examples/ directory there's an example djabberd.conf configuration file and the 'sixatalk' program. 'sixatalk' is an example djabberd based server integrating with an LDAP directory.

djabberd's People

Contributors

bradfitz avatar apparentlymart avatar yannk avatar brong avatar dominikschulz avatar abh avatar xantus avatar alexmv avatar ruoso avatar ioanrogers avatar zorkian avatar nrr avatar rajiv avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.