Gin-Quin / fast-toml

The fastest and lightest Javascript parser for TOML 0.5.0 files
MIT License
11 stars 5 forks source link

FYI: I updated my TOML spec compliance doc to include fast-toml #2

Open iarna opened 4 years ago

iarna commented 4 years ago

In particular, I found one error in your 0.4 parsing behavior using BurntSushi's tests. Specifically:

require('fast-toml').parse('abc = """\\\n    \\\n    \\\n    """')

Results in:

{ abc: '            ' }

and it should result in:

{ abc: '' }

That is, whitespace should be trimmed after escaped newlines.

There were a bunch of additional similar details that turned up in my 0.5 test suite. The tests themselves are here:

https://github.com/iarna/toml-spec-tests/tree/0.5.0

And the results are here:

https://shared.by.re-becca.org/misc/TOML-SPEC-SUPPORT.html

(Most of the red in your column is missing error conditions, which obviously aren't a concern given the premise of fast-toml.)

Gin-Quin commented 4 years ago

Wow, you've done an awesome work! Thank you very much, I'll work on these red cells. Indeed, a lot of these missing errors are not a concern but I will check them up nonetheless.

LJNeon commented 4 years ago

Out of curiosity, are there any plans to update this library to 1.0.0, now that rc.1 is out?

Gin-Quin commented 4 years ago

If one day I find the motivation I'll do it (and tweak all these rare cases where the parsing is not correct, and I have some ideas to increase speed even more) but my interest in TOML is not as sharp as before so right now I can promise nothing.

This library is half-experimental, I wanted to create a faster and lighter parser, but it has the drawback to be not as standard as Iarna's one. You can use fast-toml for your personal projects (TOML 1.0.0 adds really few features) or if you are concernet about speed and very large files but if you want something standard I advise you to use Iarna's parser, which is not so much bigger nor slower (if you look at Iarna's benchmarks you'll see fast-toml is especially good for parsing strings but for the rest it's about the same speed).

Thanks for your interest though!