YAML implementation for Nim https://nimyaml.org
Go to file
Felix Krause fe4449aaec Fixed server, improved docs
* made docs server compile again
 * improved migrating documenattion
 * improved CSS for mobile devices
 * fixed GitHub link
2023-09-04 22:48:04 +02:00
.github Updated documentation. Fixed CI 2023-08-30 22:48:58 +02:00
bench Fixed a GC problem; improved bench & tojson 2016-09-30 19:35:43 +02:00
doc Fixed server, improved docs 2023-09-04 22:48:04 +02:00
server Fixed server, improved docs 2023-09-04 22:48:04 +02:00
test Made loading work at compile time 2023-08-30 21:14:31 +02:00
tools Added testSuiteEvents tool 2017-01-09 19:09:07 +01:00
yaml Fixed server, improved docs 2023-09-04 22:48:04 +02:00
.gitignore Updated documentation. Fixed CI 2023-08-30 22:48:58 +02:00
.gitmodules Updated test suite, fixed lexer issues 2023-03-10 22:21:18 +01:00
CHANGELOG.md updated changelog & readme, v1.1.0 2023-03-10 22:56:27 +01:00
README.md Updated documentation. Fixed CI 2023-08-30 22:48:58 +02:00
config.nims Fixed server, improved docs 2023-09-04 22:48:04 +02:00
copying.txt Added copyright 2015-12-28 22:22:51 +01:00
flake.lock Reworked dumping API 2023-08-29 20:46:26 +02:00
flake.nix Fixed server, improved docs 2023-09-04 22:48:04 +02:00
nimdoc.cfg Fixed server, improved docs 2023-09-04 22:48:04 +02:00
yaml.nim Reworked loading API 2023-08-29 23:23:15 +02:00
yaml.nimble updated changelog & readme, v1.1.0 2023-03-10 22:56:27 +01:00

README.md

NimYAML - YAML implementation for Nim

Test Status

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.

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

Status

This library is stable. I only maintain it and will not add any features due to lack of time and interest. NimYAML passes all tests of the current YAML 1.2 test suite. See the official YAML test matrix for details.

PRs for bugs are welcome. If you want to add a feature, you are free to; but be aware that I will not maintain it and am unlikely to review it in depth, so if I accept it, you will be co-maintainer.

Features that have been planned, but will not be implemented by myself

  • Serialization:
    • Support for more standard library types
    • Support for polymorphism
    • Support for generic objects

Developers

nim test # runs all tests
nim lexerTests # run lexer tests
nim parserTests # run parser tests (git-clones yaml-dev-kit)
nim nativeTests # runs native value tests
nim quickstartTests # run tests for quickstart snippets from documentation
nim bench # runs benchmarks, requires libyaml
nim clean # guess
nim build # build a library

NimYAML supports Nim 1.4.0 and later. Previous versions are untested.

When debugging crashes in this library, use the d:debug compile flag to enable printing of the internal stack traces for calls to internalError and yAssert.

Web Documentation

The online documentation on nimyaml.org, including the testing ground, is generated via Nix Flake and easily deployable on NixOS. Just include the NixOS module in the flake and do

services.nimyaml-webdocs.enable = true;

This will run the documentation server locally at 127.0.0.1:5000. You can change the address setting to make it public, but I suggest proxying via nginx to get HTTPS.

License

MIT

Support this Project

If you like this project and want to give something back, you can check out GitHub's Sponsor button to the right. This is just an option I provide, not something I request you to do, and I will never nag about it.