Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
# # synapse: a small XMPP server # README: at-a-glance documentation # # Copyright (c) 2006 Eric Will <email@example.com> # # $Id$ # = synapse === A Lightweight XMPP Server Implementation This program is free but copyrighted software; see <tt>doc/license.txt</tt> for details. Information about +synapse+ may be found at <tt>http://synapse.malkier.net/</tt>. == 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: <tt>http://netxmpp-ruby.jabberstudio.org/</tt>. Currently synapse is written largely by me: rakaur, Eric Will <firstname.lastname@example.org> With various code from: sycobuny, Stephen Belcher <email@example.com> Thanks to "official" alpha/beta testers: naki, Adam Walls <firstname.lastname@example.org> rintaun, Matt Lanigan <email@example.com> And of course, thanks to all of the people who tested and posted bugs, etc. Special thanks to: stpeter, Peter Saint-Andre <firstname.lastname@example.org> 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 <tt>jabber:server</tt> namespace. == Installation +synapse+ comes pretty much installed, as there's no compile-time. === Dependencies: * ruby (>= 1.8.0) * openssl * idn (>= 0.0.1) (rubygem: <tt>gem install --remote idn</tt>) * rake (rubygem: <tt>gem install --remote rake</tt>) 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 <tt>etc/xmppd.conf</tt> in accordance to the example in <tt>etc/example.conf</tt>. Once the configuration is to your liking, you may of course move the installation to wherever you like, and run the main program with <tt>./bin/xmppd</tt>. == Contact If you have a bug, support request, patch, or feature request, please use our tracker: <tt>http://synapse.malkier.net/</tt>. Also, my JID is <tt>email@example.com</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, firstname.lastname@example.org. If you've read this far, congratulations. You are among the few elite people that actually read documentation. Thank you.