[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: