README

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.