Skip to content
Browse files

piqi-0.5.6 release

  • Loading branch information...
1 parent 65dc8b6 commit 02c6146d357e19933abe09a64e2a7c04be4f20a4 @alavrik committed Aug 7, 2011
Showing with 213 additions and 55 deletions.
  1. +72 −0 CHANGES
  2. +18 −39 INSTALL
  3. +34 −0 INSTALL.erlang
  4. +28 −0 INSTALL.ocaml
  5. +5 −2 Makefile
  6. +30 −3 README
  7. +1 −1 VERSION
  8. +25 −10 piqi-rpc/README
View
72 CHANGES
@@ -1,3 +1,75 @@
+Piqi 0.5.6 (August 7, 2011)
+===========================
+
+Highlights:
+
+ - Support for Protocol Buffer's "packed" encoding for primitive numeric fields
+ - Windows support using MinGW
+
+ Specific to OCaml:
+
+ - Multi-format Protobuf/JSON/XML/Piq serialization
+ - Serialization of custom types, e.g chars, bigints
+ - Option for representing repeated fields and lists as OCaml arrays
+
+ Specific to Erlang:
+
+ - Rebar packages for Piqi and Piqi-RPC
+ - Multi-core scalability and improved performance for JSON and XML
+ serialization
+ - 30% faster Erlang binary de-serialization and other optimizations of
+ piqirun.erl (thanks to Hunter Morris)
+ - Serialization of custom types, e.g. bigints, arbitrary Erlang terms
+
+OCaml:
+
+ - Multi-format Protobuf/JSON/XML/Piq serialization
+ - Serialization of custom OCaml types
+ - Support for Protocol Buffer's "packed" encoding for primitive numeric fields
+ - Support for empty records
+ - Option for representing repeated fields and lists as OCaml arrays
+ - Automatic topological sorting of sub-variant definitions
+ - Fix: reading uint32-fixed values > 0x7fffffff from Protobuf encoding
+
+Erlang:
+
+ - Rebar package
+ - Multi-core scalability and improved performance for JSON and XML
+ serialization
+ - Optimizations of serialization runtime library (thanks to Hunter Morris)
+ - Support for protocol Buffer's "packed" encoding for primitive numeric fields
+ - Serialization of custom Erlang types
+ - New top-level ".erlang-string-type" option for decoding strings as lists (by
+ default strings are decoded as binaries)
+ - The ability to turn off pretty-printing for JSON and XML output
+ - Clear erlc & dialyzer warnings on R14B02
+
+Piqi-RPC:
+
+ - Rebar package
+ - Make HTTP request data accessible to the application callbacks
+ - Report internal errors using standard Erlang Error Logger interface
+ - Limit the size and depth of error messages
+ - Less strict validation of HTTP request for easier request construction by
+ clients
+
+Piqi language:
+
+ - Allow to nest any type definition as a function parameter
+ - New ".proto-custom" property for better Protocol Buffers interoperation;
+ example usage:
+ .proto-custom # option java_package = "com.example.foo";
+
+Piqi tools:
+
+ - Fix: add missing exception handling when parsing XML
+ - Fix: handle malformed UTF-8 exception
+ - Fix: incorrect Protobuf to X conversion in case of imported definitions
+ - Fix: parsing empty strings represented in XML
+ - Fix #7: (piqi to-proto) invalid .proto generated in case of imported aliases
+ - Better warnings on unknown fields when parsing .piqi/.piq
+
+
Piqi 0.5.5 (April 12, 2011)
===========================
View
57 INSTALL
@@ -1,19 +1,30 @@
+This file contains general instructions for building Piqi from source code.
+
+The following files contain more specific information:
+
+ INSTALL.erlang -- building and installing Piqi for Erlang
+
+ INSTALL.ocaml -- building and installing Piqi for OCaml
+
+ piqi-rpc/README -- building and installing Piqi-RPC
+
+ INSTALL.windows -- building Piqi on Windows
+
+
SUPPORTED PLATFORMS
===================
Piqi has been tested on Linux (Debian Lenny and Squeeze, i386 and amd64
architectures) and on Mac OS X 10.6.4. It is also known to work on Windows and
Solaris.
-Piqi is written in OCaml language so in theory it should work on platforms and
-hardware architectures supported by OCaml. See the page below for the list of
-supported platforms:
+Piqi is written in OCaml so, in theory, it should work on platforms and hardware
+architectures supported by OCaml. See the list of supported platforms at:
http://caml.inria.fr/ocaml/portability.en.html
The rest of this file describes the process of building Piqi on Unix platforms.
-Instructions for building Piqi on Windows are provided in INSTALL.windows file.
PREREQUISITES
@@ -22,7 +33,7 @@ PREREQUISITES
* OCaml compiler and standard library
Recommended (tested) versions are 3.11.2 and 3.12.0. Older OCaml
- versions >= 3.10 should work as well.
+ versions >= 3.10 may work as well.
OCaml is available in most Linux distributions. It can also be
downloaded from here:
@@ -52,22 +63,11 @@ PREREQUISITES
* GNU make, m4, sed and probably some other tools.
-* (Optional -- only if Erlang support is needed) Erlang/OTP >= R13B04
-
- Piqi runtime library for Erlang and code generated by "piqic erlang"
- require recent Erlang/OTP distribution. If not avalilable in OS
- packages, it can be downloaded from http://www.erlang.org
-
-
On Debian Squeeze, the above dependencies can be installed using the following
command:
apt-get install ocaml camlp4-extra ocaml-findlib gcc m4 make sed
- Optionally, if you need Erlang support:
-
- apt-get install erlang
-
INSTALLATION INSTRUCTIONS
=========================
@@ -81,7 +81,7 @@ NOTE: these instruction are applicable only to Unix/Linux systems.
. setenv.sh
- or
+ or
source setenv.sh
@@ -95,32 +95,11 @@ NOTE: these instruction are applicable only to Unix/Linux systems.
make
-6. Install "piqi" and "piqic" binaries (optional)
+6. Install "piqi" and "piqic" binaries (optional)
make install
-The following step is necessary only is you are going to use Piqi as a data
-serialization system for OCaml.
-
-7. Install Piqi runtime library for OCaml and Piqi camlp4 extensions
-
- make ocaml-install
-
-
-The following step is necessary only is you are going to use Piqi as a data
-serialization system for Erlang.
-
-
-8. Build Piqi runtime library for Erlang
-
- make erlang
-
- Currently, there is no support for installing the library, but binary
- build as well as sources are located in "piqi-erlang" directory which
- has an OTP-compliant structure.
-
-
RUNNING TESTS
=============
View
34 INSTALL.erlang
@@ -0,0 +1,34 @@
+This file contains instructions for building Piqi to be used as a data
+serialization system for Erlang.
+
+
+PREREQUISITES
+=============
+
+ Piqi requires Erlang/OTP version >= R13B04
+
+
+PIQI REBAR PACKAGE
+==================
+
+The easiest way to build and install Piqi for Erlang is to use the rebar[1]
+package. It is maintained in a separate GitHub repository:
+
+ https://github.com/alavrik/piqi-erlang
+
+
+[1] Rebar is a build system for Erlang projects: https://github.com/basho/rebar
+
+
+INSTALLING PIQI FROM SOURCE CODE
+================================
+
+1. Follow general build and installation instructions from the INSTALL file.
+
+2. Build "piqi" Erlang application:
+
+ make erlang
+
+ After that, the binary build as well as sources can be found in
+ "piqi-erlang" directory which has an OTP-compliant structure.
+
View
28 INSTALL.ocaml
@@ -0,0 +1,28 @@
+This file contains instructions for building Piqi to be used as a data
+serialization system for OCaml.
+
+
+INSTALLATION INSTRUCTIONS
+=========================
+
+1. Follow general build and installation instructions from the INSTALL file.
+
+ If you want Piqi libraries to be installed to a custom filesystem
+ location, configure the "PIQI_OCAML_PREFIX" variable in the setenv.sh
+ file.
+
+
+2. Build Piqi runtime libraries for OCaml:
+
+ make ocaml
+
+
+3. Install Piqi runtime libraries for OCaml:
+
+ make ocaml-install
+
+
+To uninstall previously installed Piqi libraries:
+
+ make ocaml-uninstall
+
View
7 Makefile
@@ -7,7 +7,7 @@ DIRS = \
piqicc piqic piqilib piqi-tools \
-.PHONY: deps install ocaml-install ocaml-uninstall erlang erlang-clean distclean
+.PHONY: deps install ocaml ocaml-install ocaml-uninstall erlang erlang-clean distclean
# export installation and search path for OCaml dependencies
@@ -38,9 +38,12 @@ install:
install piqic/piqic $(PIQI_PREFIX)/bin
+ocaml:
+ $(MAKE) -C piqilib bcl install
+
+
ocaml-install: ocaml-uninstall
test -d $(PIQI_OCAML_PREFIX) || mkdir -p $(PIQI_OCAML_PREFIX)
- $(MAKE) -C piqilib bcl install
ocamlfind install $(OCAMLFIND_INSTFLAGS) piqi `ls $(PIQI_BUILD)/lib/ocaml/piqi/*`
View
33 README
@@ -43,22 +43,49 @@ model similar to those of high-level programming languages.
FURTHER INFORMATION
===================
-Full description and documentation can be found at
+Full description and documentation can be found at:
http://piqi.org
INSTALLATION
============
-See INSTALL file for installation instructions.
+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 installation instructions
+ 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
View
2 VERSION
@@ -1 +1 @@
-0.5.6-dev
+0.5.6
View
35 piqi-rpc/README
@@ -10,20 +10,29 @@ The "examples" directory contains several examples of Piqi-RPC services
implemented in Erlang.
+Piqi-RPC has a rebar[1] package. It is maintained in a separate GitHub
+repository:
+
+ https://github.com/alavrik/piqi-rpc
+
+
+The easiest way to build and install Piqi-RPC is to use the rebar package. This
+way, all dependencies will be installed automatically.
+
+To build Piqi-RPC from sources, install the prerequisites (see below) and run
+"make" in the current directory.
+
+
+[1] Rebar is a build system for Erlang projects: https://github.com/basho/rebar
+
+
PREREQUISITES
=============
Piqi-RPC depends on several open-source components. They need to be installed
before building or running Piqi-RPC.
-* Mochiweb
-
- HTTP server for Erlang
-
- Source code: http://github.com/mochi/mochiweb
-
-
* Webmachine
HTTP library for writing well-behaving HTTP services. It works on top of
@@ -33,12 +42,18 @@ before building or running Piqi-RPC.
Source code: http://github.com/basho/webmachine
-The easiest way to install both is to download webmachine and follow
-installation instructions.
+* Mochiweb (it is used by Webmachine)
+
+ HTTP server for Erlang
+
+ Source code: http://github.com/mochi/mochiweb
+
+
+The easiest and the most reliable way to install both is to download Webmachine
+and follow its installation instructions.
Once installed, make sure that they are added to Erlang code paths. There are
many ways to do that, one of them is to set the "ERL_LIBS" environment variable:
-
export ERL_LIBS="<path-to-your-webmachine-directory>:$ERL_LIBS"

0 comments on commit 02c6146

Please sign in to comment.
Something went wrong with that request. Please try again.