Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pastilhas/ssv
alternatives to comma-separated values for usage in file or stream format
https://github.com/pastilhas/ssv
csv rsv vlang vlang-library wsv
Last synced: about 2 months ago
JSON representation
alternatives to comma-separated values for usage in file or stream format
- Host: GitHub
- URL: https://github.com/pastilhas/ssv
- Owner: Pastilhas
- Created: 2024-01-24T20:56:55.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-01-26T13:02:53.000Z (11 months ago)
- Last Synced: 2024-01-26T13:19:45.866Z (11 months ago)
- Topics: csv, rsv, vlang, vlang-library, wsv
- Language: V
- Homepage:
- Size: 17.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SSV - Simplified Streamable Values
[![Vlang][VlangBadge]][VlangLink]
![WIP][WIPBadge]## The problem
The format comma-separated values (CSV) has a series of inconsistencies as pointed out by [Stenway](https://github.com/Stenway). With this in mind, there is a need to create a new form to (de)serialize data to improve speed / readability / simplicity.
1. **Speed** – the complexity and ambiguity of CSV makes it so parsers become slower and less efficient at processing data. For a well-built, robust system, speed is a major parameter. To increase speed of (de)serialization, 2 things can be done:
- *Create a simpler standard* – a well defined, unambiguous, compact standard leads to less computations required, improving speed of encoding/decoding;
- *Reduce readability* – by basing the standard on difficult to read yet compact formats, memory usage and time reading data can be reduced.
2. **Readability** – when a system serves as an interface with the human operator, it is crucial that it is easily and swiftly interpreted by them. To this effect, several requirements rise up:
- *Cultural context* – the file must support most languages and characters;
- *Valid text* – all characters used must be available to the user's input device;
- *Concise information* – extra, unneeded characters should be avoided to allow the operator to focus on the important information in the file;
- *Context aware format* – information should be presented in a format such that the operator can understand the context in which the information is relevant.
No perfect solution exists which marries speed and readability in all aspects. However, a system can be developed which can (de)serialize data in both forms: for machines and for humans.
## Proposed solution
- typed values – type information should be present (text, number, binary, null)
- collections – include lists and dictionaries
[VlangBadge]: https://img.shields.io/badge/Vlang-%235D87BF?style=for-the-badge&logo=v&logoColor=white
[VlangLink]: https://vlang.io
[WIPBadge]: https://img.shields.io/badge/Work%20In%20Progress-orange?style=for-the-badge