6 <perex>Vision of future versions</perex> |
6 <perex>Vision of future versions</perex> |
7 <pořadí>14</pořadí> |
7 <pořadí>14</pořadí> |
8 |
8 |
9 <text xmlns="http://www.w3.org/1999/xhtml"> |
9 <text xmlns="http://www.w3.org/1999/xhtml"> |
10 <p> |
10 <p> |
11 The world is relational! |
11 Releases before v1.0.0 are development and are not intended for production use. |
12 </p> |
12 Releases after v1.0.0 should follow the rules of <a href="http://semver.org/">Semantic versioning</a>. |
|
13 </p> |
|
14 |
|
15 <h2>v0.8</h2> |
|
16 |
|
17 <p> |
|
18 First public release for brave and courageous. |
|
19 </p> |
|
20 |
|
21 <h3>Data types</h3> |
|
22 <ul> |
|
23 <li>boolean</li> |
|
24 <li>variable unsigned integer (prototype)</li> |
|
25 <li>string in UTF-8</li> |
|
26 </ul> |
|
27 <h3>Inputs</h3> |
|
28 <ul> |
|
29 <li>CLI</li> |
|
30 <li>fstab</li> |
|
31 </ul> |
|
32 <h3>Transformations</h3> |
|
33 <ul> |
|
34 <li>grep: regular expression filter</li> |
|
35 <li>sed: regular expression replacer</li> |
|
36 </ul> |
|
37 <h3>Outputs</h3> |
|
38 <ul> |
|
39 <li>tabular</li> |
|
40 <li>XML</li> |
|
41 <li>GUI in Qt</li> |
|
42 <li>ODS (LibreOffice)</li> |
|
43 </ul> |
|
44 |
|
45 |
|
46 <h2>v0.9, v0.10, v0.11 etc.</h2> |
|
47 |
|
48 <p> |
|
49 Releases for discussion and verification of the format and API design. |
|
50 </p> |
|
51 |
|
52 <h3>Data types</h3> |
|
53 <ul> |
|
54 <li>arrays/streams of bytes (octets)</li> |
|
55 <li>arrays of other types</li> |
|
56 <li>arrays of other types with support for NULL values</li> |
|
57 <li>nested relations</li> |
|
58 <li>date and time</li> |
|
59 <li>variable integer (probably LEB128 or similar)</li> |
|
60 <li>decimal numbers</li> |
|
61 <li>support NULL values (introduce bitmaps)</li> |
|
62 <li>support long strings (chunked, similar to octet streams)</li> |
|
63 |
|
64 <li>fixed size integers</li> |
|
65 <li>precise BigDecimal</li> |
|
66 <li>fractions</li> |
|
67 <li>string in UTF-16</li> |
|
68 <li>string in ASCII</li> |
|
69 <li>string in ISO 8859-1</li> |
|
70 <li>string in ISO 8859-2</li> |
|
71 </ul> |
|
72 |
|
73 <h3>Inputs</h3> |
|
74 <ul> |
|
75 <li>XML</li> |
|
76 <li>DSV</li> |
|
77 <li>regular expression</li> |
|
78 </ul> |
|
79 <h3>Transformations</h3> |
|
80 <ul> |
|
81 <li>SQL: sqlite</li> |
|
82 </ul> |
|
83 <h3>Outputs</h3> |
|
84 <ul> |
|
85 <li>CLI: null-byte separated values</li> |
|
86 </ul> |
|
87 |
|
88 |
|
89 <h2>v1.0</h2> |
|
90 |
|
91 <p> |
|
92 First version for production use. |
|
93 Brings no new features, just stabilized result of previous development. |
|
94 Stable must be: |
|
95 </p> |
|
96 |
|
97 <ul> |
|
98 <li>format specification</li> |
|
99 <li>relpipe-lib-writer</li> |
|
100 <li>relpipe-lib-reader</li> |
|
101 <li>relpipe-in-cli</li> |
|
102 <li>relpipe-out-tabular</li> |
|
103 <li>relpipe-out-xml</li> |
|
104 </ul> |
|
105 |
|
106 <p> |
|
107 Other parts might be released as stable later. |
|
108 </p> |
|
109 <p> |
|
110 After this point, all components (the format specification, particular libraries and particular tools) |
|
111 will be versioned independently and the compatibility matrix will be maintained. |
|
112 </p> |
|
113 |
|
114 <h2>Further versions</h2> |
|
115 <p> |
|
116 Plans for next decades: |
|
117 </p> |
|
118 |
|
119 <h3>Data types</h3> |
|
120 <ul> |
|
121 <li>intervals of various types</li> |
|
122 <li>IPv4 address and subnet</li> |
|
123 <li>IPv6 address and subnet</li> |
|
124 <li>UUID</li> |
|
125 <li>e-mail</li> |
|
126 <li>URL / URI</li> |
|
127 <li>geographic locations</li> |
|
128 <li>OID: Object identifier</li> |
|
129 </ul> |
|
130 <h3>Inputs</h3> |
|
131 <p>Systems, commands:</p> |
|
132 <ul> |
|
133 <li>files: ls, find, grep</li> |
|
134 <li>network information: ip, iptables, netstat, ss, dhcp-lease-list</li> |
|
135 <li>network interaction: ping, host, wget, curl</li> |
|
136 <li>system information: ps, lsof</li> |
|
137 <li>versioning systems (Mercurial, Git, Subversion, Monotone, Bazaar)</li> |
|
138 <li>SELECTs from sqlite, <a href="https://sql-dk.globalcode.info/">SQL-DK</a></li> |
|
139 </ul> |
|
140 |
|
141 <p>Formats:</p> |
|
142 <ul> |
|
143 <li>XML: as xmlTable() in SQL</li> |
|
144 <li>ODS (LibreOffice)</li> |
|
145 <li>YAML, JSON, INI</li> |
|
146 <li>CSV, DSV</li> |
|
147 <li>Fsdb</li> |
|
148 <li>recfiles</li> |
|
149 <li>Java .properties</li> |
|
150 <li>Gettext / .po files</li> |
|
151 <li>sqlite (full database dump)</li> |
|
152 <li>STDIO log: captured STDIN, STDOUT and STDERR of other process with precise timing of all events</li> |
|
153 <li>Inverse tabular</li> |
|
154 <li>Wikipedia / MediaWiki: harvest tables from given article</li> |
|
155 </ul> |
|
156 <h3>Transformations</h3> |
|
157 <ul> |
|
158 <li>iconv: character encoding converter</li> |
|
159 <li>rename: relations, attributes</li> |
|
160 <li>filter/skip: relations, attributes</li> |
|
161 <li>add constant attribute</li> |
|
162 <li>WHERE-like filter</li> |
|
163 <li>JOIN</li> |
|
164 <li>ORDER BY</li> |
|
165 <li>UNION, UNION ALL, explicit or implicit (relation interleaving)</li> |
|
166 <li>split single relation into multiple relations according to an attribute value</li> |
|
167 <li>union multiple relations and add an attribute with original relation name</li> |
|
168 <li>XPath, XSLT, XQuery</li> |
|
169 <li>statistics: compute/add aggregated values like min(), max(), avg(), sum() or percentiles</li> |
|
170 <li>function calls (probably should be part od SQL or XPath)</li> |
|
171 <li>pack and unpack: single record with arrays vs. multiple records with scalars</li> |
|
172 <li>Guile, Lua, Perl, Python</li> |
|
173 <li>system command executor</li> |
|
174 </ul> |
|
175 <h3>Outputs</h3> |
|
176 <ul> |
|
177 <li>GUI in GTK</li> |
|
178 <li>(La)TeX</li> |
|
179 <li>Record, Single (like in <a href="https://sql-dk.globalcode.info/">SQL-DK</a>)</li> |
|
180 <li>XML tree</li> |
|
181 <li>YAML, JSON, INI</li> |
|
182 <li>CSV, DSV</li> |
|
183 <li>Fsdb</li> |
|
184 <li>recfiles</li> |
|
185 <li>Java .properties</li> |
|
186 <li>Gettext / .po files</li> |
|
187 <li>ASN.1</li> |
|
188 <li>XHTML: tables, graphs</li> |
|
189 <li>GraphViz: .dot files</li> |
|
190 <li>SQL: CREATE TABLE, INSERT</li> |
|
191 <li>SMTP, IMAP, files, HTTP, SOAP, ZeroMQ, TCP, UDP</li> |
|
192 <li>source code / literals in Java, C, C++, Bash</li> |
|
193 <li>return/exit code (single numeric value)</li> |
|
194 </ul> |
|
195 |
|
196 <h3>Libraries and tools</h3> |
|
197 <p>Readers (SAX-like parsers) and writers (generators) for:</p> |
|
198 <ul> |
|
199 <li>C++</li> |
|
200 <li>C</li> |
|
201 <li>Java</li> |
|
202 <li>Python</li> |
|
203 <li>Perl</li> |
|
204 <li>Rust</li> |
|
205 <li>Go</li> |
|
206 <li>PHP</li> |
|
207 </ul> |
|
208 <p>Other libraries and tools:</p> |
|
209 <ul> |
|
210 <li>ORM API: mapping between classes/objects and relations/records</li> |
|
211 <li>schemas (XSD-like)</li> |
|
212 <li>generators, compilers, validators, comparators</li> |
|
213 <li>transformer helpers</li> |
|
214 <li>Ragel input helpers</li> |
|
215 <li>PEG input helpers</li> |
|
216 <li>repair tools (for corrupted data)</li> |
|
217 <li>pull parsers</li> |
|
218 <li>SAX and DOM parsers (read relational data like it was XML)</li> |
|
219 <li>visual editor for pipeline design</li> |
|
220 </ul> |
|
221 |
|
222 |
13 </text> |
223 </text> |
14 |
224 |
15 </stránka> |
225 </stránka> |