Metronome IM, lightweight xmpp server with advanced microblogging features.
Lua Terra C JavaScript HTML Makefile CSS
Clone or download
Failed to load latest commit information.
certs certs/Makefile: raise validity for self-signed certs to 1825 days. May 20, 2014
core moduleapi: reflect changes to util.timer and add new API. Aug 13, 2018
fallbacks Make copyright referencing evident in the headers. May 21, 2013
net net.http.server: fix global access. Jun 13, 2018
plugins mod_muc: remove setting of last_used flag, as it's done in new_room(). Aug 15, 2018
scripts scripts.logrotate: add delaycompress, (Fixes #228, thanks mbugeia) May 29, 2015
templates mod_register_api: remove <a /> from templates. Apr 30, 2018
util-src util-src/encodings.c: don't think we need to care about MSVC on Unixl… Oct 8, 2013
util {...}: add api function to remove all timers from said origin. Aug 13, 2018
COPYING Add some licensing/copyright info, you never know. Also stick in the … Sep 20, 2012
DOCUMENTATION DOCUMENTATION, LICENSE, README{.md}: update dates and descriptions. Jan 19, 2018
LICENSE DOCUMENTATION, LICENSE, README{.md}: update dates and descriptions. Jan 19, 2018
Makefile Makefile: just add read and write permissions to metronome.version. May 7, 2018
README README{.md}: minor corrections. Aug 5, 2018 README{.md}: minor corrections. Aug 5, 2018
configure First commit. Aug 7, 2012
metronome metronome, metronomectl: reflect changes, set incoming_s2s into the m… Jul 8, 2014
metronome.cfg.lua.dist metronome.cfg.lua.dist: refactor defaults, add logging. Jun 13, 2018
metronome.release metronome.release: set version to 3.10.2. Aug 15, 2018
metronomectl {...}: handle some Lua5.2 changes. (Fixes #351) May 11, 2018

alt text

This software codebase began as a fork of prosody trunk (to be 0.9) merged with LW.Org's custom patches, initiating from August 7th 2012 (see first commit).

Being mainly based on Prosody a lot of Metronome's code is backport compatible, but as development progressed a good portion of it completely diverged from mainstream's to better suit LW.Org IM's needs.

Differences from Prosody are, but not limited to:

  • The Pubsub API and wrapped modules, mod_pubsub and mod_pep
  • The MUC API and wrapper plugins
  • Pluggable MUC configuration
  • Pluggable Routing API
  • Core stack: Modulemanager, Usermanager, Hostmanager, Module API, etc...
  • More aggressive memory usage optimisations
  • Bidirectional S2S Streams
  • Direct TLS S2S Streams and XEP-0368 resolution
  • Dialback errors handling and "DB without DB" (XEP-344)
  • The anonymous auth backend (mod_auth_anonymous & sasl.lua ineherent part)
  • Included plugins, utils
  • SPIM prevention system
  • Hits/blacklist/whitelist based host filtering (mod_gate_guard)
  • In-Band Registration verification and account locking mechanism
  • The HTTP API
  • XEP-0252 support for BOSH's JSON Padding
  • Extensive Microblogging over XMPP support
  • Daemon Control Utility
  • It does have only one server backend being libevent and has a hard dep. on lua-event