So what's new?
First, we are introducing a new module for decoding URIs. Then we worked on several improvements to enable the processing of XML, JSON, and text in streaming manner. The new parse-xml-fragment() function has been reworked to parse and process huge chunks of XML data as streams. The JSON module has been dramatically improved and is now able to parse and serialize streams of JSON documents. We are introducing a new split() function to tokenize streamable strings. Finally, file:read-text() and http:send-request() are now supporting arbitrary text encodings.
The ItemFactory from the Zorba C++ API has been extended with methods: createDayTimeDuration, createYearMonthDuration, createDocumentNode, createCommentNode, and createPiNode(). Also the StaticContext contains two new methods: getFunctions() and getNamespaceBindings.
The new PHP interface that we introduced in December is now shipped by default with Zorba and contains several improvements.
Last but not least, you can forget about fn:concat() and use the XQuery 3.0 string concatenation expressions.
"Hello " || "Zorba " || "2.2"
Results of deterministic functions with atomic parameters and return types are cached by the runtime. This behavior can be controlled with the %ann:cache and %ann:no-cache annotations.
Input nodes in nodes constructors are not copied systematically anymore. This behavior can be controlled with the %ann:propagates-input-nodes and %ann:must-copy-input-nodes annotations.
Several performance improvements have been implemented: type operators, base64Binary processing, and other XQuery expressions.
We pinned down more than thirty bug reports. You can find a comprehensive list of these bugs in our ChangeLog.
That's All Folks!
Please checkout the 2.2 ChangeLog for the complete list of changes in this new version of Zorba.
During the upcoming weeks, we will go over some of these new features in more details and showcase how they can be leveraged in your applications.
We hope you enjoy Zorba 2.2 and stay tuned for more.
In the meantime, may the FLWOR be with you!