| 1 | # Verse |
| 2 | |
| 3 | Verse is an XMPP library for Lua. It allows you to connect to an XMPP server, as |
| 4 | either a client or a component. It also supports connecting over HTTP (BOSH). |
| 5 | |
| 6 | Verse is built and tested with Lua 5.4. Lua 5.1 and LuaJIT are no longer |
| 7 | supported. |
| 8 | |
| 9 | Verse shares some of its underlying code with the Prosody XMPP server. To avoid |
| 10 | duplication, the shared files are not part of the Verse project. By default the |
| 11 | generated verse.lua expects them to be available at runtime from an installed |
| 12 | Prosody. A standalone build embeds them instead (see Building). |
| 13 | |
| 14 | ## Features |
| 15 | |
| 16 | - Standard XMPP, including SRV and TLS support |
| 17 | - Roster management |
| 18 | - Service discovery |
| 19 | - Stream management (XEP-0198) |
| 20 | - MUC |
| 21 | - Ad-hoc commands |
| 22 | - Jingle (peer-to-peer TCP and file transfer) |
| 23 | - File transfer proxies |
| 24 | - Message receipts |
| 25 | - Pubsub |
| 26 | - Message archive management |
| 27 | - PEP |
| 28 | - Many more... |
| 29 | |
| 30 | ## Dependencies |
| 31 | |
| 32 | Both builds of verse.lua need these C libraries at runtime: |
| 33 | |
| 34 | - LuaSocket |
| 35 | - LuaExpat |
| 36 | - luaunbound (DNS resolution) |
| 37 | - LuaSec (optional, but required for TLS) |
| 38 | |
| 39 | All are available via LuaRocks and most Linux distributions. |
| 40 | |
| 41 | The default build additionally needs the libraries of an installed Prosody |
| 42 | (13.0 or later) on the Lua module path. The standalone build embeds Prosody's |
| 43 | Lua libraries and pure-Lua substitutes for its C modules. The substitutes do |
| 44 | not provide HMAC, so the standalone build authenticates with PLAIN rather than |
| 45 | SCRAM. |
| 46 | |
| 47 | ## Building |
| 48 | |
| 49 | To generate verse.lua for use alongside an installed Prosody: |
| 50 | |
| 51 | ./configure |
| 52 | make |
| 53 | |
| 54 | To generate a verse.lua that does not need an installed Prosody: |
| 55 | |
| 56 | ./configure --standalone |
| 57 | make |
| 58 | |
| 59 | The configure script will take a guess at the best place to install verse.lua. To install: |
| 60 | |
| 61 | make install # (may require root, e.g. sudo) |
| 62 | |
| 63 | If you fetched Verse from its source repository, some files will automatically be fetched |
| 64 | from Prosody's repository the first time you run 'make'. Official Verse releases already |
| 65 | include these files. |
| 66 | |
| 67 | ## Documentation |
| 68 | |
| 69 | See doc/ for a number of example scripts. |