Home > synapse

synapse

Synapse is a project mainly written in ..., it's free.

Synapse XMPP Daemon

#

synapse: a small XMPP server

README: at-a-glance documentation

#

Copyright (c) 2006 Eric Will [email protected]

#

$Id$

#

= synapse === A Lightweight XMPP Server Implementation

This program is free but copyrighted software; see doc/license.txt for details.

Information about +synapse+ may be found at http://synapse.malkier.net/.

== Credits

This program was written from scratch, based only off of my other Ruby programs, none of which have ever been released. This program borrows some ideas, and perhaps a small amount of code (mostly for IDN, TLS, and SASL) from the netxmpp-ruby project: http://netxmpp-ruby.jabberstudio.org/.

Currently synapse is written largely by me: rakaur, Eric Will [email protected]

With various code from: sycobuny, Stephen Belcher [email protected]

Thanks to "official" alpha/beta testers: naki, Adam Walls [email protected] rintaun, Matt Lanigan [email protected]

And of course, thanks to all of the people who tested and posted bugs, etc.

Special thanks to: stpeter, Peter Saint-Andre [email protected] for giving this project a chance, for putting up with my endless questions on the RFCs that you so kindly published, and of course for all the hard work you put into XMPP.

== References

[ XMPP-CORE] -- RFC 3920 -- XMPP: Core [ XMPP-IM] -- RFC 3921 -- XMPP: Instant Messaging and Presence [ BASE64] -- RFC 3548 -- The Base16, Base32, and Base64 Data Encodings [ DIGEST-MD5] -- RFC 2831 -- Using Digest Authentication as a SASL Mechanism [ PLAIN] -- RFC 4616 -- The PLAIN SASL Mechanism [ STRINGPREP] -- RFC 3454 -- Preparation of Internationalized Strings [ IDN] -- RFC 3491 -- Stringprep Profile for Domain Names [ SASL] -- RFC 2222 -- Simple Authentication and Security Layer [ SRV] -- RFC 2782 -- DNS RR SRV [ TLS] -- RFC 2246 -- Transport Layer Security [ IQ-VERSION] -- XEP 0092 -- Software Verson [ DISCO] -- XEP 0030 -- Service Discovery [ MSGOFFLINE] -- XEP 0160 -- Best Practices for Handling Offline Messages [ DELAY] -- XEP 0203 -- Delayed Delivery [ IQ-REGISTER] -- XEP 0077 -- In-Band Registration [ VCARD-TEMP] -- XEP 0054 -- vcard-temp [VCARD-AVATAR] -- XEP 0153 -- vCard-Based Avatar

== Presentation

+synapse+ is a small, lightweight, strictly RFC-compliant Jabber/XMPP server. It doesn't require a system-wide install, so that XMPP can hopefully be brought to the world of shells. As part of this goal, +synapse+ doesn't rely on many processes running concurrently (+jabberd+), and doesn't rely on an exotic language to be installed (+ejabberd+) (unless you consider Ruby exotic, I guess, but it's installed in all of my shells).

+synapse+ should happily interoperate with any server that is either RFC compliant, or supports, at the very least, the Dialback protocol. +synapse+ is quite strict in regards to enforcing the RFC, with one exception for legacy +jabberd+ servers that don't properly specify the jabber:server namespace.

== Installation

+synapse+ comes pretty much installed, as there's no compile-time.

=== Dependencies:

  • ruby (>= 1.8.0)
  • openssl
  • idn (>= 0.0.1) (rubygem: gem install --remote idn)
  • rake (rubygem: gem install --remote rake)

We require ruby for obvious reasons.

We require OpenSSL for TLS streams.

We require IDN for Nameprep. Thankfully, the RubyGem 'idn' already includes support for Nodeprep and Resourceprep.

We require rake to run the tests and generate documentation.

Once all dependencies are met, edit etc/xmppd.conf in accordance to the example in etc/example.conf. Once the configuration is to your liking, you may of course move the installation to wherever you like, and run the main program with ./bin/xmppd.

== Contact

If you have a bug, support request, patch, or feature request, please use our tracker: http://synapse.malkier.net/.

Also, my JID is tt>[email protected]</tt. Keep in mind if you message me about a bug, support request, patch, or feature request, I'm just going to point you to the tracker. If I handled everyone's problems on a case-by-case basis I'd certainly be crazier than I already am.

There is a mailing list, [email protected].

If you've read this far, congratulations. You are among the few elite people that actually read documentation. Thank you.