relpipe-data/roadmap.xml
branchv_0
changeset 151 5697a01db388
parent 147 c004a45502b3
child 152 f876683324c2
equal deleted inserted replaced
150:7d7d4e1f293f 151:5697a01db388
     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>