Giter VIP home page Giter VIP logo

piqi's Introduction

OVERVIEW
========

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.

    - Piq -- a human-friendly typed data representation language. It is designed
      to be more convenient for representing, viewing and editing data than
      JSON, XML, CSV, S-expressions and other formats.

    - Piqi -- a powerful data definition language. It is specially designed to be
      used with Piq, but also works as a schema language for other data formats
      including JSON, XML and Protocol Buffers binary format. Tools for
      validating, pretty-printing and converting data between Piq, JSON, XML and
      Protocol Buffers binary format.

    - Piqi-RPC -- an RPC-over-HTTP system for Erlang. It provides a simple way to
      expose Erlang services via JSON, XML and Google Protocol Buffers over
      HTTP.

As a data serialization system, Piqi implements native support for OCaml and
Erlang. Connectivity with other programming languages is provided via Google
Protocol Buffers. Overall, Piqi provides a more natural mapping to functional
programming languages compared to various serialization systems that were
originally designed for imperative or object-oriented languages.

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 powerful 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.


FURTHER INFORMATION
===================

Full description and documentation can be found at:

       http://piqi.org


INSTALLATION
============

See the INSTALL file for installation instructions.


BUG TRACKER
===========

If you found a bug or have any suggestions, please report them to the issue
tracker:

        http://github.com/alavrik/piqi/issues


CONTRIBUTING
============

Participation and patches are very welcome! The best way to submit a
contribution is to open a pull request on GitHub against "dev" branch.


MAILING LIST
============

For discussions about the usage, development, and future of Piqi, please post on
the Piqi Google Group:

        http://groups.google.com/group/piqi


FILES
=====

  README                this file
  INSTALL               general installation instructions
  INSTALL.erlang        instructions for building Piqi for Erlang
  INSTALL.ocaml         instructions for building Piqi for OCaml
  INSTALL.windows       instructions for building Piqi on Windows
  setenv.sh             installation configuration file
  setenv-mingw.sh       build configuration file for Windows/MinGW
  LICENSE               license
  NOTICE                copyright notice
  AUTHORS               Piqi authors
  CHANGES               release history
  VERSION               current version
  Makefile              main Makefile
  make/                 makefiles and build scripts
  deps/                 third-party components (see NOTICE for details)
  piqi-camlp4/          Piqi syntax extensions for OCaml
  piqicc/               Piqi compiler compiler
  piqic/                Piq interface compiler for OCaml and Erlang
  piqi-tools/           "piqi" command-line utility (piqi tools)
  piqi                  Piqi self-specification
  piqilib/              Piqi common library
  piqirun-ocaml/        Piqi runtime library for OCaml
  piqi-erlang/          Piqi runtime library and Piqi tools bindings for Erlang
  piqi-rpc/             Piqi-RPC -- an RPC-over-HTTP system for Erlang
  examples/             examples
  tests/                tests for various piqi functionality; see tests/README
  editors/              text editor plugins for .piq and .piqi files
  src/                  makes rebar happy (rebar is a build tool for Erlang)

piqi's People

Contributors

alavrik avatar thijsterlouw avatar

Watchers

peterwang avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.