Smack Overview ============== [Back](index.md) Smack is a library for communicating with XMPP servers to perform real-time communications, including instant messaging and group chat. Smack Key Advantages -------------------- * Extremely simple to use, yet powerful API. Sending a text message to a user can be accomplished in only a few lines of code: ```java AbstractXMPPConnection connection = new XMPPTCPConnection("mtucker", "password", "jabber.org"); connection.connect().login(); Message message = connection.getStanzaFactory() .buildMessageStanza() .to("jsmith@jivesoftware.com") .setBody("Howdy! How are you?") .build(); connection.sendStanza(message); ``` * Doesn't force you to code at the XMPP protocol level, as other libraries do. Smack provides intelligent higher level constructs such as the `Chat` and `Roster` classes, which let you program more efficiently. * Does not require that you're familiar with the XMPP XML format, or even that you're familiar with XML. * Provides easy machine to machine communication. Smack lets you set any number of properties on each message, including properties that are Java objects. * Open Source under the Apache License 2.0, which means you can incorporate Smack into your commercial or non-commercial applications. About XMPP ---------- XMPP (eXtensible Messaging and Presence Protocol) is an open protocol standardized by the IETF and supported and extended by the XMPP Standards Foundation (XSF, [http://www.xmpp.org](http://www.xmpp.org)). How To Use This Documentation ----------------------------- This documentation assumes that you're already familiar with the main features of XMPP instant messaging. It's also highly recommended that you open the Javadoc API guide and use that as a reference while reading through this documentation. Copyright (C) Jive Software 2002-2008