XMPP client library for Lua
hg clone https://code.matthewwild.co.uk/verse
tip: 72d7b4241f89 (2026-09-24)
# 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). Verse is built and tested with Lua 5.4. Lua 5.1 and LuaJIT are no longer supported. 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. By default the generated verse.lua expects them to be available at runtime from an installed Prosody. A standalone build embeds them instead (see Building). ## Features - Standard XMPP, including SRV and TLS support - Roster management - Service discovery - Stream management (XEP-0198) - MUC - Ad-hoc commands - Jingle (peer-to-peer TCP and file transfer) - File transfer proxies - Message receipts - Pubsub - Message archive management - PEP - Many more... ## Dependencies Both builds of verse.lua need these C libraries at runtime: - LuaSocket - LuaExpat - luaunbound (DNS resolution) - LuaSec (optional, but required for TLS) All are available via LuaRocks and most Linux distributions. The default build additionally needs the libraries of an installed Prosody (13.0 or later) on the Lua module path. The standalone build embeds Prosody's Lua libraries and pure-Lua substitutes for its C modules. The substitutes do not provide HMAC, so the standalone build authenticates with PLAIN rather than SCRAM. ## Building To generate verse.lua for use alongside an installed Prosody: ./configure make To generate a verse.lua that does not need an installed Prosody: ./configure --standalone make 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.