Mellium

mellium.im

This site is a collection links to Go libraries and support tools implementing the Extensible Messaging and Presence Protocol (XMPP), sometimes known as Jabber for historical reasons.

All of our software is built cooperatively in accordance with the ICA’s Statement on the Cooperative Identity. If you’d like to join us in promoting the XMPP protocol in a friendly and welcoming co-op, you can contribute code, documentation, donate, help us write bylaws, or use just about any other skill you might have! The best way to get started is by joining our chat room and saying hi; we hope to see you there!

Modules

Module Synopsis

Core

mellium.im/sasl

Package sasl implements the Simple Authentication and Security Layer (SASL) as defined by RFC 4422.

mellium.im/xmlstream

Package xmlstream provides an API for streaming, transforming, and otherwise manipulating XML data.

mellium.im/xmpp

Package xmpp provides functionality from the Extensible Messaging and Presence Protocol.

Crypto

mellium.im/crypto Package crypto implements various cryptographic algorithms.
mellium.im/omemo

Package omemo is an attempt to implement the OMEMO end-to-end encryption protocol for mellium.im/xmpp.

Other

mellium.im/filechooser

Package filechooser contains tview widgets for selecting files.

mellium.im/legacy The legacy module contains outdated XMPP functionality.
mellium.im/xml

Package xml implements an experimental XML parser.

mellium.im/clarkns

Package clarkns implements Clark Notation for XML.

mellium.im/cli

A library for writing command line interfaces in the style of git or apt.

mellium.im/reader

Package reader contains small, reusable APIs that build on the io.Reader interface.

mellium.im/sysexit

Package sysexit contains exit codes from sysexits(3).

Tools

mellium.im/checkdoc The checkdoc command scans Go packages for comment and documentation related issues.
mellium.im/checkmd The checkmd command checks Markdown files for common problems.
mellium.im/communique

A version of the Communiqué instant messaging client with a terminal-based user interface.

Unmaintained

mellium.im/bosh The bosh package implements an HTTP based transport for TCP.
mellium.im/blogsync The blogsync command is a tool for importing and exporting blog posts between Markdown files and write.as.
mellium.im/issues

The issues tool migrates issues from Bitbucket to GitHub.

mellium.im/verbmux Package verbmux is an HTTP multiplexer that handles by method.