ncdc 1.18.1 + yxml manual + dcstats + minor restyle

...I need to commit more often.
This commit is contained in:
Yorhel 2014-02-11 10:28:26 +01:00
parent 610b0fb31c
commit 57e7bb546e
20 changed files with 339 additions and 56 deletions

View file

@ -11,14 +11,15 @@ The code can be obtained from the L<git repo|http://g.blicky.net/yxml.git> and
is available under a permissive MIT license. The only two files you need are
L<yxml.c|http://g.blicky.net/yxml.git/plain/yxml.c> and
L<yxml.h|http://g.blicky.net/yxml.git/plain/yxml.h>, which can easily be
included and compiled as part of your project. Minimal documentation is
included in yxml.h, more complete documentation is pending.
included and compiled as part of your project. Complete API documentation is
available in L<the manual|http://dev.yorhel.nl/yxml/man>.
The API follows a simple, mostly buffer-less design and only consists of two
functions:
The API follows a simple and mostly buffer-less design, and only consists of
three functions:
void yxml_init(yxml_t *x, char *stack, size_t stacksize);
void yxml_init(yxml_t *x, void *buf, size_t bufsize);
yxml_ret_t yxml_parse(yxml_t *x, int ch);
yxml_ret_t yxml_eof(yxml_t *x);
Be aware that I<simple> is not necessarily I<easy> or I<convenient>. The API is
relatively low-level and designed to integrate into pretty much any application
@ -28,11 +29,9 @@ devices. It is possible to implement a more convenient and high-level API on
top of yxml, but I'm not very fond of libraries that do more than what I
strictly need.
Yxml is still in a beta stage and hasn't been very thoroughly tested yet. There
are no tarball releases available at the moment. The API and ABI may still
change a bit, so I strongly advise against dynamic linking (I'm not sure if
I'll ever promise a stable ABI, but the API should certainly get stabilized at
some point).
There are no tarball releases available at the moment. The API is relatively
stable, but I won't currently promise any ABI stability. Dynamic linking
against yxml is therefore not a very good idea.
=head3 Features
@ -95,11 +94,11 @@ using C<< <!ENTITY> >>.
=back
These conformance issues are the result of the byte-oriented and minimal design
of yxml, and I do not intent to fix these directly within the library. All of
the above mentioned issues can be fixed on top of yxml (by the application, or
by a wrapper) if strict conformance is required. With the exception of custom
entity references, but I have a simple idea on how to support that in the
future, too.
of yxml, and I do not intent to fix these directly within the library. The
intention is to make sure that all of the above mentioned issues can be fixed
on top of yxml (by the application, or by a wrapper) if strict conformance is
required, but the required functionality to support custom entity references
and DTD handling has not been implemented yet.
=head3 Non-features
@ -136,7 +135,7 @@ implementation is also included as an indication of the "theoretical" minimum.
expat 2.1.0 MIT 162 139 194 432 1.47 1.09
libxml2 2.9.1 MIT 464 328 518 816 2.53 1.75
mxml 2.7 LGPL2+static 32 733 75 832 12.38 7.80
yxml git MIT 5 935 31 384 1.14 0.74
yxml git MIT 5 971 31 416 1.15 0.74
The code for these benchmarks is available in the
L<bench/|http://g.blicky.net/yxml.git/tree/bench> directory on git. Some
@ -177,7 +176,7 @@ with C<-Os> than with C<-O2>.
expat 2.1.0 MIT 113 314 145 632 1.58 1.20
libxml2 2.9.1 MIT 356 948 412 256 3.01 2.08
mxml 2.7 LGPL2+static 27 725 71 704 11.70 7.44
yxml git MIT 4 835 30 264 1.72 1.05
yxml git MIT 4 955 30 392 1.67 1.02
=head2 Validating vs. non-validating
@ -204,6 +203,6 @@ It should be noted that a lot of XML documents found in the wild are not
described with a DTD, but instead use an alternative technology such as XML
schema. Wikipedia L<has more
information|https://en.wikipedia.org/wiki/XML#Schemas_and_validation> on this.
Using a validating parser for such documents would only introduce bloat and may
Using a validating parser for such documents would only add bloat and may
introduce L<potential security
vulnerabilities|https://en.wikipedia.org/wiki/Billion_laughs>.