/xblab

"Dining Cryptographers"-inspired chat server for node.js

Primary LanguageC++

xblab

A messaging server inspired by David Chaum's "Dining Cryptographers"

xblab started as a Node.js addon and has evolved into a standalone server and Node binding/library on the client. It relies heavily on libuv. While no one needs another chat application, some of the functionality may prove useful in areas requiring stateful, secure and concurrent message processing.

Dependencies

xblab relies on the following libraries, which are not included in this repo:

  • Event Loop and System

    libuv handles task scheduling, thread interaction, and networking.

  • Cryptography

    Cryptographic functionality comes from the excellent Botan library by Jack Lloyd.

  • Message Protocol

    Prior to encryption, messages are serialized using Google Protocol Buffers.

  • Database

    The Db class uses pqxx, which depends on libpq. You can swap in your own data layer by implementing db.h.

  • Misc

    Client builds are managed using node-gyp. Server configuration files are parsed using YAJL. Outside of JavaScript, regular expressions are handled via PCRE.

If you've found this repo and have suggestions or would like information about getting it up and running on your system, please open an issue or send a pull request.