You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Matthew Wild 1fd8843bb0 pubsub: Support for 'notify' in retract and purge operations 1 month ago
buildscripts Fix typos (thanks Link Mauve and codespell) 3 years ago
doc docs/example.lua: Don't depend on 'verse' being a global 1 year ago
libs libs.encodings: Add encodings.utf8 compat (works on Lua 5.3+) 1 year ago
plugins pubsub: Support for 'notify' in retract and purge operations 1 month ago
util util.sasl.scram: Add support for authenticating with pre-hashed password 5 years ago
.hgtags Added tag 0.9.1 for changeset 9aa5bce207b2 6 years ago
LICENSE LICENSE: Add license (MIT/X11) 12 years ago
Makefile Makefile: Use configured squish path 4 years ago
README README: Add README file 6 years ago
bosh.lua verse: trim trailing whitespace 5 years ago
client.lua client: Remove unused import 1 year ago
component.lua verse: trim trailing whitespace 5 years ago
configure buildsys: Update to fetch from Prosody 0.10 branch 4 years ago
init.lua verse: Ensure verse.quit() only quits the loop once 3 years ago
squishy squishy: Include util.x509, required by net.http in Prosody 0.10+ 3 years ago


# Verse

Verse is an XMPP library for Lua. It allows you to connect to an XMPP server, as
either a client or a component. It also supports connecting over HTTP (BOSH).

Currently Verse supports Lua 5.1 and LuaJIT, though support for later versions of
Lua is planned (contributions welcome).

Verse shares some of its underlying code with the Prosody XMPP server. To avoid
duplication, the shared files are not part of the Verse project, but are available
in Prosody's source repository, and are bundled with official Verse releases.

## Features

- Standard XMPP, including SRV and TLS support
- Roster management
- Service discovery
- Stream management (XEP-0198)
- Ad-hoc commands
- Jingle (peer-to-peer TCP and file transfer)
- File transfer proxies
- Message receipts
- Pubsub
- Message archive management
- Many more...

## Dependencies

Verse requires:

- LuaSocket
- LuaExpat
- LuaSec

All these libraries are available for Windows, OS X, many popular Linux distributions, and
also via LuaRocks.

## Building

To generate a self-contained verse.lua:


The configure script will take a guess at the best place to install verse.lua. To install:

make install # (may require root, e.g. sudo)

If you fetched Verse from its source repository, some files will automatically be fetched
from Prosody's repository the first time you run 'make'. Official Verse releases already
include these files.

## Documentation

See doc/ for a number of example scripts.