Browse Source

updated the documentation

master
Jon Kristensen 15 years ago
parent
commit
6abbc23e9d
  1. 93
      Documentation/Pontarius XMPP Manual.lyx
  2. 47
      Documentation/Software Requirements Specification for Pontarius XMPP.lyx

93
Documentation/Pontarius XMPP Manual.lyx

@ -86,10 +86,25 @@ Introduction
\end_layout \end_layout
\begin_layout Standard \begin_layout Standard
Pontarius XMPP aims to be a convenient-to-use, powerful, correct, secure, Pontarius XMPP 0.1 is a minimal XMPP client implementation with all the required
and extendable XMPP client library for Haskell. client features and behaviours of the RFC 6120 ("XMPP Core") specification
It is written by Jon Kristensen and Mahdi Abdinejadi. \begin_inset Foot
Being licensed under a three-clause BSD license, Pontarius XMPP is free 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. and open source software.
\end_layout \end_layout
@ -98,18 +113,40 @@ Features and Implementation Specifics
\end_layout \end_layout
\begin_layout Standard \begin_layout Standard
Pontarius XMPP 0.1 implements the XMPP Core specification (RFC 6120) Pontarius XMPP 0.1 implements the XMPP Core specification (RFC 6120).
\begin_inset Foot Features include the following:
status open \end_layout
\begin_layout Plain Layout \begin_layout Itemize
http://tools.ietf.org/html/rfc6120 Connecting and disconnecting from an XMPP server
\end_layout \end_layout
\end_inset \begin_layout Itemize
Opening the XMPP streams
\end_layout
. \begin_layout Itemize
Below are the specifics of our implementation. 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 \end_layout
\begin_layout Itemize \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 Authentication Mechanism (SCRAM-SHA-1) is the only supported mechanism
\end_layout \end_layout
\begin_layout Standard \begin_layout Section
Later versions will add supports for different XMPP extensions, such as Future Development
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/.
\end_layout \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 \end_layout
\begin_layout Section \begin_layout Section
@ -360,8 +396,13 @@ Managing XMPP addresses
\end_layout \end_layout
\begin_layout Standard \begin_layout Standard
There are four functions dealing with XMPP addresses (or JIDs, as they are As with email, XMPP uses globally unique addresses (or JIDs, as they are
also called): 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 \end_layout
\begin_layout Standard \begin_layout Standard

47
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. 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 Jon Kristensen does DOES NOT TAKE ANY RESPONSIBILITY OR OFFER ANY GUARANTEES
in regards to the software, its requirements or this document. in regards to the software, its requirements or this document.
Furthermore, the software is provided Furthermore, the software is provided WITHOUT ANY WARRANTY; without even
\begin_inset Quotes eld the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
\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.
\end_layout \end_layout
\begin_layout Subsection \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. where Pontarius XMPP 0.1 applications are built.
\end_layout \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 \begin_layout Section
Specific requirements Specific requirements
\end_layout \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. REQ-33 XML namespaces for stanzas should always be known to the client.
\end_layout \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 \begin_layout Description
REQ-34 The system shall always check for the appropriate features before REQ-34 The system shall always check for the appropriate features before
trying to use them. 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 RFC 6122: XMPP: Address Format
\end_layout \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 \begin_layout Description
REQ-42 JIDs should be validated, transformed, and internationalized in accordanc 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 \end_layout
\begin_layout Description \begin_layout Description
REQ-43 JIDs should support internationalization of node names, domain names, REQ-43 JIDs should be supported through hostnames, IPv4 addresses, and IPv6
and resource names, through IDNA2008. addresses.
\end_layout \end_layout
\begin_layout Description \begin_layout Description

Loading…
Cancel
Save