<stránka
xmlns="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/strana"
xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro">
<nadpis>Release v0.11</nadpis>
<perex>fourth public release of Relational pipes</perex>
<m:release>v0.11</m:release>
<text xmlns="http://www.w3.org/1999/xhtml">
<p>
We are pleased to introduce you the new development version of <m:name/>.
This release brings Recfile input and output and ASN.1 BER output:
</p>
<ul>
<li>
<strong>Recfile format support</strong>:
Recfile is the native format of <a href="https://www.gnu.org/software/recutils/">GNU Recutils</a>.
Recfiles are text files that contain records of various types.
They are human-editable and serve as simple databases.
<m:name/> now contain tools for converting relational data streams to and from the recfile format.
This format is good for editing by hand or for storing in some version control system.
GNU Recutils and <m:name/> can be used together for data processing or e.g. for data-driven scripting.
</li>
<li>
<strong>ASN.1 BER output</strong>:
Abstract Syntax Notation One (ASN.1) is traditional and well established language for describing interfaces and data structures in particular.
This format/language is widespread and actively used in telecommunications, cryptography and other industries.
<abbr title="Basic Encoding Rules">BER</abbr> is one of ASN.1 encodings.
This release of <m:name/> bring <abbr title="This support will be further improved and extended in further releases.">basic</abbr> support for output in the BER format.
Now it can serve as a preview (such data can be opened in dumpasn1 or wireshark) or a template (the source code can be modified to generate BER data in some particular format)
and help with interaction with ASN.1 <em>native speakers</em>.
</li>
</ul>
<p>
See the <m:a href="examples">examples</m:a> and <m:a href="screenshots">screenshots</m:a> pages for details.
</p>
<p>
Please note that this is still a development release and thus the API (libraries, CLI arguments, formats) might and will change.
Any suggestions, ideas and bug reports are welcome in our <m:a href="contact">mailing list</m:a>.
</p>
<h3>Data types</h3>
<ul>
<li m:since="v0.8">boolean</li>
<li m:since="v0.8">variable unsigned integer (prototype)</li>
<li m:since="v0.8">string in UTF-8</li>
</ul>
<h3>Inputs</h3>
<ul>
<li m:since="v0.11">Recfile</li>
<li m:since="v0.9">XML</li>
<li m:since="v0.9">CSV</li>
<li m:since="v0.9">file system</li>
<li m:since="v0.8">CLI</li>
<li m:since="v0.8">fstab</li>
</ul>
<h3>Transformations</h3>
<ul>
<li m:since="v0.10">guile: filtering and transformations defined in the Scheme language using GNU Guile</li>
<li m:since="v0.8">grep: regular expression filter, removes unwanted records from the relation</li>
<li m:since="v0.8">cut: regular expression attribute cutter (removes or duplicates attributes and can also DROP whole relation)</li>
<li m:since="v0.8">sed: regular expression replacer</li>
<li m:since="v0.8">validator: just a pass-through filter that crashes on invalid data</li>
<li m:since="v0.8">python: highly experimental</li>
</ul>
<h3>Outputs</h3>
<ul>
<li m:since="v0.11">ASN.1 BER</li>
<li m:since="v0.11">Recfile</li>
<li m:since="v0.9">CSV</li>
<li m:since="v0.8">tabular</li>
<li m:since="v0.8">XML</li>
<li m:since="v0.8">nullbyte</li>
<li m:since="v0.8">GUI in Qt</li>
<li m:since="v0.8">ODS (LibreOffice)</li>
</ul>
<p>
Instalation was tested on Debian GNU/Linux 9.6.
The process should be similar on other distributions.
</p>
<m:pre src="examples/release-v0.11.sh" jazyk="bash" odkaz="ano"/>
<p>
<m:name/> are modular thus you can download and install only parts you need (the libraries are needed always).
Tools <code>out-gui.qt</code> and <code>tr-python</code> require additional libraries and are not built by default.
</p>
<p>
The module <code>relpipe-in-filesystem</code> uses C++ filesystem API which is supported since GCC 8.
This module can be compiled and seems usable even with GCC 6, but requires some patching (switch to the experimental API):
</p>
<m:pre jazyk="bash"><![CDATA[sed 's@#include <filesystem>@#include <experimental/filesystem>@g' -i "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/FileAttributeFinder.h "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/XattrAttributeFinder.h "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/FilesystemCommand.h "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/AttributeFinder.h
sed 's@std::filesystem@std::experimental::filesystem@g' -i "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/FileAttributeFinder.h "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/XattrAttributeFinder.h "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/FilesystemCommand.h "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/AttributeFinder.h
sed 's/.*PROPERTY CXX_STANDARD.*/#\0/g' -i "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/CMakeLists.txt]]></m:pre>
<p>
The module <code>relpipe-tr-guile</code> uses GNU Guile 2.2 but can also work with 2.0.
In such case, it requires this patch:
</p>
<m:pre jazyk="bash"><![CDATA[sed 's/guile-2\.2/guile-2.0/g' -i "$RELPIPE_SRC"/relpipe-tr-guile.cpp/src/CMakeLists.txt]]></m:pre>
</text>
</stránka>