[Vala] GXml 0.6.0 Released



GXml library to provide XML parsing and manipulation capabilities. It is
written in Vala and provides:

* DOM API implementing at least W3C DOM Level 1 Core
* Serialization framework to XML, using existing implementations or create
custome   ones.
* A pure Vala XML tree generator classes
* A Gee/GObject based API for easy access objects in XML tree

Its functionality is obtained by wrapping libxml2 library, for tree parsing
or storage.

This new version is API/ABI incompatible with 0.4 series.

Most work has been on simplifying API for Vala programmers users, using
interfaces and Gee classes, allowing to create new backends based or
different from libxml2. This work allowed to re-implement existing classes
without radically modify API for existing applications and makes room to
improve performance and memory usage.

News and changes are as follow:


* Added new interfaces to simplify implementing new backends for XML
reading/writing, containers are Gee ones.

* Renamed GXml 0.4 DOM classes to prefixing a "x", to avoid conflicts with
new interfaces

* GXml DOM classes, now implement new interfaces

* GXml DOM classes now implement Gee interfaces to access directly to
libxml2 structures,
  reducing extra processing and memory consumption when they are referenced
from permanent
  on memory GObject classes. Re-implementing most other DOM classes to
implement Gee classes
  in on roadmap, to reduce memory and possibly increase performance on
parsing.

* Improved XML namespaces handling

* Added new TwDocument class, as pure Vala XML tree container
implementation of
  new interfaces

* Implemented a 3-5 times faster XML writer using TwDocument and libxml2
xmlTextWriter.
  A new TwDocument and xmlTextReader is on roadmap, to improve parsing
performance.

* Serializable framework ported to new interfaces, allowing to use different
  backends when serialize/deserialize GObjects.

* Serializable and its implementations, has gained serialization
performance improvements
  using TwDocument and better namespace handling.

* Improved documentation

* Added --enable-performance-tests, just to reduce the time required to run
all
  unit tests.

New interfaces makes room to convert any GObject as a GXml.Node, making
de/serialization more transparent and possibly better performance and
memory usage reduction, by avoiding intermediate XML trees using libxml2 or
TwDocument. Another plan includes, GObject mapping to XSD.

You can get source code from:

https://download.gnome.org/sources/gxml/0.6/gxml-0.6.0.tar.xz

or from its repository at:

https://git.gnome.org/browse/gxml

-- 
Trabajar, la mejor arma para tu superación
"de grano en grano, se hace la arena" (R) (en trámite, pero para los
cuates: LIBRE)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]