mirror of https://github.com/status-im/NimYAML.git
YAML implementation for Nim
https://nimyaml.org
4933194dd6
61720e0df9475af647de171f6b2964c36234961a in the Nim compiler introduced the bug in this project. In brief, the upstream change flattens `nnkStmtList`s of one item. Thus, `quote do:` followed by one statement is no longer a nnkStmtList but whatever that one statement is. This breaks several macro implementations where a `quote do:` form is initialized and then appended to. Based on Araq's feedback (https://irclogs.nim-lang.org/02-10-2017.html#21:01:26), these single-statement quotes are now converted into one-element statement lists as necessary (behavior on old versions of the compiler is maintained). |
||
---|---|---|
bench | ||
doc | ||
server | ||
test | ||
tools | ||
yaml | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
CHANGELOG.md | ||
README.md | ||
config.nims | ||
copying.txt | ||
nimdoc.cfg | ||
yaml.nim | ||
yaml.nimble |
README.md
NimYAML - YAML implementation for Nim
NimYAML is a pure Nim YAML implementation without any dependencies other than Nim's standard library. It enables you to serialize Nim objects to a YAML stream and back. It also provides a low-level event-based API, and a document object model which you do not want to use because serializing to native types is much more awesome.
Documentation, examples and an online demo are available here. Releases are available as tags in this repository and can be fetched via nimble:
nimble install yaml
Features that may come in the future
- Serialization:
- Support for more standard library types
- Support for polymorphism
- Support for generic objects
- Support for transient fields (i.e. object fields that will not be (de-)serialized
Developers
nim tests # runs all tests
nim lexerTests # run lexer tests
nim parserTests # run parser tests (git-clones yaml-dev-kit)
nim serializationTests # runs serialization tests
nim quickstartTests # run tests for quickstart snippets from documentation
nim documentation # builds documentation to folder docout
nim server # builds the REST server used for the testing ground
nim bench # runs benchmarks, requires libyaml
nim clean # guess
nim build # build a library
NimYAML needs at least Nim 0.17.0 in order to compile. Version 0.9.1 is the last release to support 0.15.x and 0.16.0.