Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Piqi – universal schema language: JSON, XML, Protocol Buffers data validation and conversion

branch: master
Octocat-spinner-32 bin Move piqi-ocaml to https://github.com/alavrik/piqi-ocaml February 03, 2014
Octocat-spinner-32 deps Add support for cross-compiling win32 executable on Linux March 21, 2014
Octocat-spinner-32 doc doc: fix a typo April 10, 2014
Octocat-spinner-32 editors first commit July 06, 2010
Octocat-spinner-32 examples Move piqi-ocaml to https://github.com/alavrik/piqi-ocaml February 03, 2014
Octocat-spinner-32 make Move piqi-ocaml to https://github.com/alavrik/piqi-ocaml February 03, 2014
Octocat-spinner-32 piqi Move custom-field property from piqi-lang to piqi-spec March 09, 2014
Octocat-spinner-32 piqilib More internal improvements March 16, 2014
Octocat-spinner-32 src Add support for cross-compiling win32 executable on Linux March 21, 2014
Octocat-spinner-32 tests tests shouldn't fail on missing protoc March 30, 2014
Octocat-spinner-32 .gitignore Optimize build: don't build ocaml stuff by default January 11, 2014
Octocat-spinner-32 .travis.yml Check documentation in CI April 17, 2013
Octocat-spinner-32 CHANGES piqi-0.6.6 release March 30, 2014
Octocat-spinner-32 INSTALL doc: update README and piqi.1 manpage March 28, 2014
Octocat-spinner-32 LICENSE first commit July 06, 2010
Octocat-spinner-32 Makefile Add support for cross-compiling win32 executable on Linux March 21, 2014
Octocat-spinner-32 NOTICE Drop support for OCaml <= 3.11 and remove dependency on camlp4 extens… February 01, 2014
Octocat-spinner-32 README.md Add TODO list April 08, 2014
Octocat-spinner-32 THANKS Add Ignas Vyšniauskas to THANKS March 20, 2014
Octocat-spinner-32 TODO Add TODO list April 08, 2014
Octocat-spinner-32 VERSION Bump version number to 0.6.6-dev March 30, 2014
Octocat-spinner-32 configure Add support for cross-compiling win32 executable on Linux March 21, 2014
Octocat-spinner-32 setenv.sh Remove piqic and piqicc and their references January 04, 2014
Octocat-spinner-32 travis-ci Remove link checking step from CI build January 20, 2014
README.md

Build Status

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.

piqi is a 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.

Full project description and documentation can be found at http://piqi.org

Installation

See INSTALL for the installation instructions.

Bug tracker

If you found a bug or have any suggestions please submit a GitHub issue: https://github.com/alavrik/piqi/issues

Contributing

Participation and patches are very welcome! Check TODO list for ideas.

The best way to submit a contribution is to open a pull request on GitHub against the master branch.

Mailing list

For discussions about the usage, development, and future of Piqi there is the Piqi Google Group: http://groups.google.com/group/piqi

License

Apache License Version 2.0

Files

src/                  "piqi" command-line utility
piqilib/              common library used by piqi command-line tool and piqi-ocaml
piqi/                 Piqi self-specification
doc/                  project documentation

make/                 makefiles and build scripts
deps/                 third-party dependencies (see ./NOTICE for details)
setenv.sh             environment configuration for running tests
Something went wrong with that request. Please try again.