What is Quid2?

Quid2 (pronounced quidquid) is a general approach to the creation of open, evolvable, consistent and efficient distributed systems.

It is composed by a suite of mini-specifications for the definition and sharing of data type definitions and for typed-oriented data exchange:

Top (Type Oriented Protocol)
Minimalist content-oriented transport protocol (Haskell Library)
ZM (正名 Zhèng Míng)
Expressive data modelling language (Haskell Library)
Principled and efficient binary data format (Haskell Library)

Older Specs

What Can It Do For Me?

Ask not what Quid2 can do for you but rather what you can do for Quid2!

However, if you really need some egotistic motivation, start by checking the introduction to top and top-apps.

Hacking Quid2

All code is hosted by the Quid2 GitHub organisation.

These are some tasks you might consider working on:

Task Package Technologies
Write a WWW top end-user app (e.g. an IRC-like chat application) or improve the existing generic ui top-apps-ghcjs GHCJS, react-flux or ghcjs-dom
Write a top agent (e.g. an indexer/store for ZM data types source code) top-apps acid-state or similar
Write a meta top agent (e.g. a search engine for types with textual fields) top-apps Full Text search or similar
Add support for modal Top channels (e.g. signed and encrypted channels) top None
Add support for long running stateful Top applications top WebSockets, GHCJS
Access Top channels via your favorite streaming library (e.g. conduit) top Streaming Libraries
Parser for Top patterns top Parsing
Generate ZM types representations and Top APIs for your second most-favorite language (e.g. C, Java, Python) zm None
Parser for ZM source code (data types declarations and comments) zm Parsing
Review ZM data type metamodel zm None
Lazy serialisation/deserisalisation flat Fast bit buffers, GHC optimisations
Improve serialisation/deserisalisation performance flat Fast bit buffers, GHC optimisations
Fix serialisation performance issues with GHC 8.0.2 flat Generics, GHC optimisations
Improve deriving of Model instances for parametric data types model Generics, Type Families

Get in Touch

Questions, ideas, suggestions?

Send an email at or open an Issue on the relevant Quid2 project.

Page updated: 7th of June 2017