XMPP Component Host and S2S Proxy
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
deps Fix RouteTable, test log, unbound Sep 24, 2018
gen Update DH parameters Feb 14, 2018
include Fix RouteTable, test log, unbound Sep 24, 2018
src Use make_unique and make_shared (and other tidy) Jul 5, 2018
.gitmodules Switch git submodules to https Sep 24, 2018
BUILD.md Add Makefile rules to easily regenerate DH params May 5, 2017
FAQ.md Update Documentation Dec 16, 2016
FILTERS.md Update Documentation Dec 16, 2016
LICENSE Added RFC 6125 additional names Jul 30, 2016
Makefile Update Spiffing and recursive modules in Make Feb 14, 2018
README.md Update README Dec 16, 2016
metre.conf.xml Update unbound's cmake build Mar 11, 2018


Metre :: An XMPP Server (Sort Of)

Metre (check that spelling) is an XMPP Server, of sorts. Unlike traditional XMPP servers which host services internally, Metre is specifically designed to connect between servers, mediating connections and traffic.

It's written in C++11 (ie, modern C++), and aims to provide a semantically-aware filter between domains, to avoid exposing your internal XMPP fully to the world.

You'll probably want to read the FAQ, and you may wish to find some BUILD instructions. There is also a documentation file on FILTERS

The LICENCE is MIT, and the copyright rests (mostly - see the Base 64 code) jointly with Surevine Ltd and Dave Cridland.

In particular, this is not (yet) finished.

Currently working:

  • Component hosting XEP-0114
  • TLS
  • X.509 auth (PKIX)
  • Dialback and S2S XEP-0220
  • Dialback without Dialback XEP-0344
  • Basic forwarding/routing
  • DNSSEC (Including RFC 6125 additional reference identifiers)
  • S2S <-> S2S proxying
  • DNS overrides (SRV, A, and TLSA per-domain)
  • DANE (including via TLSA overrides as above)
  • Basic Filtering
  • Daemonizing
  • IPv6

Currently poorly tested:

Currently unimplemented but planned:

  • Semantic filtering