PSYC RELEASE 1.0: syntax and libpsyc implementation


PSYC syntax 1.0 published and implemented in C

After many years gaining experience with the original PSYC syntax we have designed and implemented a new iteration, optimized it for best performance and wrote a solid parser and renderer in a package called libpsyc, suitable for linking into applications.

PSYC's protocol syntax unites the following characteristics:

  1. truly text-based, you can edit it and use templates to produce it
  2. can be processed as efficiently as a binary protocol
  3. for simple purposes simple enough that you can code it yourself
  4. can efficiently store binary data and binary metadata
  5. can hold data structures up to a certain depth (to be improved
     with coming versions)

libpsyc can be employed for serialization purposes beyond what PSYC was originally designed for, like storing data in files.

Benchmarks show it is on average 6 times faster than JSON or XML documents the gains compared to other popular formats for ommunication protocols. PSYC is at least 4 times faster, roughly 6 times on average, and a lot faster when it comes to handling binary data. The document gives explanations on how these gains are achieved.

The PSYC syntax is defined in while tells you where to obtain libpsyc which also includes the procedures to run the benchmarks yourself.

psyced server links with libpsyc and provides the new syntax

psyc:// is currently accepting both old (".") and new ("|") PSYC syntaxes on port 4404. psyclpc contains an LPC binding of libpsyc for use by the psyced server and psyced provides support for it in its current version. All of this is only a few days old so it's still in alphabeta state.. handle with care!

Scalability & Paranoia at the Federated Social Web Summit

We have submitted a paper to the FSW Summit next week, exploring scalability and privacy challenges in the design of decentralized social networks. draws from experience with large scale PSYC installations. See you at FSW next week.