diff --git a/Documentation/Pontarius XMPP Manual.lyx b/Documentation/Pontarius XMPP Manual.lyx index a624174..82aa13d 100644 --- a/Documentation/Pontarius XMPP Manual.lyx +++ b/Documentation/Pontarius XMPP Manual.lyx @@ -86,10 +86,25 @@ Introduction \end_layout \begin_layout Standard -Pontarius XMPP aims to be a convenient-to-use, powerful, correct, secure, - and extendable XMPP client library for Haskell. - It is written by Jon Kristensen and Mahdi Abdinejadi. - Being licensed under a three-clause BSD license, Pontarius XMPP is free +Pontarius XMPP 0.1 is a minimal XMPP client implementation with all the required + client features and behaviours of the RFC 6120 ("XMPP Core") specification +\begin_inset Foot +status open + +\begin_layout Plain Layout +http://tools.ietf.org/html/rfc6120 +\end_layout + +\end_inset + +. + Pontarius XMPP has been developed by the Pontarius project (mainly by Jon + Kristensen). + +\series bold + +\series default +Being licensed under a three-clause BSD license, Pontarius XMPP is free and open source software. \end_layout @@ -98,18 +113,40 @@ Features and Implementation Specifics \end_layout \begin_layout Standard -Pontarius XMPP 0.1 implements the XMPP Core specification (RFC 6120) -\begin_inset Foot -status open +Pontarius XMPP 0.1 implements the XMPP Core specification (RFC 6120). + Features include the following: +\end_layout -\begin_layout Plain Layout -http://tools.ietf.org/html/rfc6120 +\begin_layout Itemize +Connecting and disconnecting from an XMPP server \end_layout -\end_inset +\begin_layout Itemize +Opening the XMPP streams +\end_layout -. - Below are the specifics of our implementation. +\begin_layout Itemize +Securing XMPP streams with TLS +\end_layout + +\begin_layout Itemize +Authenticate using SASL +\end_layout + +\begin_layout Itemize +Perform resource binding +\end_layout + +\begin_layout Itemize +Send and receive stanzas (message, presence, and IQ) and stanza errors +\end_layout + +\begin_layout Itemize +Send and receive stream errors +\end_layout + +\begin_layout Standard +Below are the specifics of our implementation: \end_layout \begin_layout Itemize @@ -147,20 +184,19 @@ For (SASL) authentication, the SHA-1 variant of SASL Salted Challenge Response Authentication Mechanism (SCRAM-SHA-1) is the only supported mechanism \end_layout -\begin_layout Standard -Later versions will add supports for different XMPP extensions, such as - RFC 6121 (XMPP IM), XEP-0004: Data Forms, and XEP-0077: In-Band Registration. -\begin_inset Foot -status open - -\begin_layout Plain Layout -XMPP RFCs can be found at http://xmpp.org/xmpp-protocols/rfcs/, and the so-called - XEPs at http://xmpp.org/xmpp-protocols/xmpp-extensions/. +\begin_layout Section +Future Development \end_layout -\end_inset - - +\begin_layout Standard +The current goal for Pontarius XMPP 0.2 is to implement the Extended Personal + Media Network (XPMN) architecture so that the Pontarius project can develop + a media server and some other XPMN services on top of Pontarius XMPP. + However, if we get approached by people wanting to use Pontarius XMPP for + other things, we might decide to help them out by implement some other + features first. + Please let us know if you are looking for a Haskell XMPP library and Pontarius + XMPP lacks some features that you want. \end_layout \begin_layout Section @@ -360,8 +396,13 @@ Managing XMPP addresses \end_layout \begin_layout Standard -There are four functions dealing with XMPP addresses (or JIDs, as they are - also called): +As with email, XMPP uses globally unique addresses (or JIDs, as they are + also called) in order to route and deliver messages over the network. + All XMPP entities are addressable on the local network. +\end_layout + +\begin_layout Standard +There are four functions dealing with XMPP addresses: \end_layout \begin_layout Standard diff --git a/Documentation/Software Requirements Specification for Pontarius XMPP.lyx b/Documentation/Software Requirements Specification for Pontarius XMPP.lyx index 6c9fca1..decf54d 100644 --- a/Documentation/Software Requirements Specification for Pontarius XMPP.lyx +++ b/Documentation/Software Requirements Specification for Pontarius XMPP.lyx @@ -174,17 +174,8 @@ The Pontarius project is not a legal entity, but is like a synonym for Jon Kristensen. Jon Kristensen does DOES NOT TAKE ANY RESPONSIBILITY OR OFFER ANY GUARANTEES in regards to the software, its requirements or this document. - Furthermore, the software is provided -\begin_inset Quotes eld -\end_inset - -WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE -\begin_inset Quotes erd -\end_inset - -. - Consult the GNU General Public License for more information. + Furthermore, the software is provided WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. \end_layout \begin_layout Subsection @@ -996,16 +987,6 @@ We assume that the Glasgow Haskell Compiler (GHC) is available on the system where Pontarius XMPP 0.1 applications are built. \end_layout -\begin_layout Subsubsection -Apportioning of requirements -\end_layout - -\begin_layout Standard -If IDNA2008 or the other stringprep-replacing specifications are not finished - or otherwise not suitable to implement, we will fall back to implementing - stringprep for Pontarius XMPP 0.1. -\end_layout - \begin_layout Section Specific requirements \end_layout @@ -1320,6 +1301,13 @@ REQ-32 Being a client library, the system shall support the 'jabber:client' REQ-33 XML namespaces for stanzas should always be known to the client. \end_layout +\begin_layout Description +REQ-XX: While we validate that the incoming XML is valid and has everything + that we need, we are not validating the XML against the XML schemas. + (This functionality will most likely be implemented in xml-enumerator in + the future.) +\end_layout + \begin_layout Description REQ-34 The system shall always check for the appropriate features before trying to use them. @@ -1399,25 +1387,14 @@ REQ-41 The system must a convenient API to deal with stanza and stream errors. RFC 6122: XMPP: Address Format \end_layout -\begin_layout Standard -As can be read in Section 1 of RFC 6122, the XMPP community has started - discussions about moving from the 2003 version of IDNA (Internationalized - Domain Names in Applications) to the new IDNA2008 standard. - Unlike its predecessor, this new standard is not based on Stringprep, and - RFC 6122 will be obsoleted when an alternative to the Nodeprep and Resourceprep - profiles has been completed. - XMPP software implementations are in encouraged by RFC 6122 to follow IDNA2008 - instead, and Pontarius XMPP should try to do that. -\end_layout - \begin_layout Description REQ-42 JIDs should be validated, transformed, and internationalized in accordanc -e with the successor to the stringprep profiles +e with the stringprep profiles Nodeprep, Nameprep, and Resourceprep. \end_layout \begin_layout Description -REQ-43 JIDs should support internationalization of node names, domain names, - and resource names, through IDNA2008. +REQ-43 JIDs should be supported through hostnames, IPv4 addresses, and IPv6 + addresses. \end_layout \begin_layout Description