Skip to content

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
OCaml Protocol Buffer Shell Makefile Other
Failed to load latest commit information.
deps Fix build with ocaml >= 4.02 and ocamlfind < 1.5
doc
editors/vim first commit
examples Run travis-ci scripts on top of ocaml-travisci-skeleton
make Remove third-party convenience dependencies from the repo
piqi Run travis-ci scripts on top of ocaml-travisci-skeleton
piqilib Enable creation of dllpiqilib_stubs.so as a part of piqilib bytecode …
src Fix compilation warnings for OCaml >= 4.02
tests Fix "piqi convert --piq-frameless-input"
.gitignore Optimize build: don't build ocaml stuff by default
.travis-ci.sh Run travis-ci scripts on top of ocaml-travisci-skeleton
.travis.yml Run travis-ci scripts on top of ocaml-travisci-skeleton
CHANGES piqi-0.6.12 release
INSTALL Add "make test" goal
LICENSE first commit
Makefile Add "make test" goal
NOTICE Bring NOTICE and copyright information up-to-date
README.md Bring NOTICE and copyright information up-to-date
THANKS Add Ignas Vyšniauskas to THANKS
TODO Remove tests dependency on environment
VERSION Bump version number to 0.6.12-dev
configure Fix build with ocaml >= 4.02 and ocamlfind < 1.5
opam Add "make test" goal

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 downloaded and built by `make deps`
Something went wrong with that request. Please try again.