Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

75 lines (55 sloc) 2.794 kb
Piqi is a set of languages and open-source tools for working with structured
data. It includes:
* A cross-language data serialization system compatible with Google
Protocol Buffers. It allows programs implemented in various languages to
exchange and persist data in a portable manner.
* High-level data representation (Piq) and data definition languages
* Tools for validating, pretty-printing and converting data between
Piq, JSON and portable binary encoding.
As a data serialization system, Piqi follows a static approach, when high-level
data specification is used to generate static code for serializing and
deserializing data structures.
Piqi implements native support for OCaml and Erlang programming languages.
Connectivity with other languages is provided via Google Protocol Buffers.
In fact, Piqi was inspired by Google Protocol Buffers and specially designed to
be largely compatible with it. Like Protocol Buffers, Piqi relies on type
definitions and supports data schema evolution. The main difference is that Piqi
has a richer data model, high-level modules and a human-friendly data
representation language (Piq).
The combination of data representation (Piq) and data definition (Piqi)
languages is similar to the concept of "valid XML" (i.e. XML conforming to some
XML Schema). However, unlike XML, Piq has a concise, clean syntax and a data
model similar to those of high-level programming languages such as ML.
Full description and documentation can be found at
See INSTALL file for installation instructions.
README this file
INSTALL installation instructions installation configuration file
LICENSE license
NOTICE copyright notice
AUTHORS Piqi authors
CHANGES release history
VERSION current version
Makefile main Makefile
make/ make files for building the project
deps/ third-party components (see NOTICE for details)
camlp4/ camlp4 extensions
piqicc/ Piqi compiler compiler
piqic/ Piq interface compiler for OCaml and Erlang
piqi/ "piqi" command-line utility (piqi tools) Piqi self-specifications
piqirun-ocaml/ Piqi runtime library for OCaml
piqirun-erlang/ Piqi runtime library for Erlang
examples/ examples
tests/ tests for various piqi functionality; see tests/README
editors/ text editor plugins for .piq and .piqi files
Jump to Line
Something went wrong with that request. Please try again.