Bug#761343: ITP: piqi -- Universal schema language for JSON, XML, Protocol Buffers
Package: wnpp
Severity: wishlist
Owner: Matthew Maurer <maurer@matthewmaurer.org>
* Package name : piqi
Version : 0.6.8
Upstream Author : Anton Lavrik <alavrik@piqi.org>
* URL : http://piqi.org
* License : Apache-2.0
Programming Lang: OCaml
Description : Universal schema language for JSON, XML, Protocol Buffers
Piqi is a universal schema language and a collection of tools built
around it.
The Piqi language can be used to define schemas for JSON, XML, Google
Protocol Buffers and some other data formats.
This package includes "piqi" command-line program that exposes some
of the tools:
- for validating, pretty-printing and converting data between JSON,
XML, Protocol Buffers and Piq formats.
- for working with the schemas, such as converting definitions between
Piqi (.piqi) and Protocol Buffes (.proto), and "compiling" Piqi
definitions into one of the supported portable data representation
formats (JSON, XML, Protocol Buffers).
Other Piqi sub-projects include:
- A multi-format (JSON, XML, Protocol Buffers) data serialization
system for Erlang and OCaml.
- Piq -- a human-friendly typed data representation language. It is
designed to be more convenient for viewing and editing data compared
to JSON, XML, CSV, S-expressions and other formats.
- Piqi-RPC -- an RPC-over-HTTP system for Erlang. It provides a simple
way to expose Erlang services via JSON, XML and Protocol Buffers
over HTTP.
The Piqi project was inspired by Google Protocol Buffers and designed to
be largely compatible with it. Like Protocol Buffers, Piqi relies on
type definitions and supports schema evolution. The main differences is
that Piqi has a richer data model, high-level modules, standard mappings
to JSON and XML, and comes with a powerful data representation format
(Piq). Also, Piqi is a lot more extensible.
This package is useful as the primary gateway between OCaml/Erlang code and
Protocol Buffer serialized data. As such, it is important to keeping those two
languages able to speak efficiently to others.
Additionally, piqi is a dependency of piqi-ocaml, and piqi-erlang, which
provides the runtime libraries used by OCaml and Erlang respectively
to access Protocol Buffers via piqi.
My hope is that long term maintenance could be supported by the OCaml Team.
Reply to: