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.