| Crates.io | tsv |
| lib.rs | tsv |
| version | 0.1.1 |
| created_at | 2018-08-16 08:19:38.240891+00 |
| updated_at | 2018-09-26 06:11:56.878241+00 |
| description | tsv (tab-seperated-values) data format for serde (serialization/deserialization) |
| homepage | |
| repository | https://github.com/oooutlk/tsv |
| max_upload_size | |
| id | 79719 |
| size | 70,300 |
The tsv project introduces a new format for data serialization/deserialization, which is text-based and deals with tabular data.
At serde's point of view, the classic tsv is only applicable to the schema of (a sequence of) a struct composed of primitives( integer, floats, strings etc). The specification has to be extended to allow arbitrary schemas, such as a struct of a struct.
This project extends the spec by placing sequences in columns. See tsv-spec.txt for specification.
It uses serde crate for serialization/deserialization, and reflection crate for generating column names and dealing with enums.
If you impl Serialize/Deserialize for your types to tell serde they are sequences/maps, do make sure their schemata() and Vec::schemata()/HashMap::schemata() are isomorphic.
Simple. The only requirement for end users to use tsv files is to understand what a table is. It is deadly simple as a configuration file format for non-technical users.
Available. You can use Microsoft Excel, OpenOffice/LibreOffie Calc and text editors that support elastic tabstops to view/edit tsv files. And it is easy to write tsv by hand if you have read all the 63 lines of the spec.
Not efficiency-oriented.
Not self-descripting.
Under MIT.
A cargo configuration file written in tsv format could look like the following table( with spaces replacing tabs ):
deps
package lib value
name version authors keyword macro name Version Path
tsv 0.1.0 oooutlk tsv X serde 1.0
tab trees ~/trees
table
serde