• Stars
    star
    180
  • Rank 206,319 (Top 5 %)
  • Language
    Nim
  • License
    Other
  • Created over 8 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

YAML implementation for Nim

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 serializationTests # runs serialization 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.

More Repositories

1

emerald

HTML5 templating engine for Nimrod
Nim
93
star
2

OpenGLAda

Thick Ada binding for OpenGL and GLFW
Ada
90
star
3

Zicross

Nix Flake for cross-compiling and packaging for foreign systems
Nix
48
star
4

OpenCLAda

An Ada binding for the OpenCL host API
Ada
15
star
5

DSA-LaTeX

LaTeX-Klasse und Dokumente für Das Schwarze Auge
TeX
14
star
6

DSA-4.1-Heldendokument

Konfigurierbares Heldendokument für DSA, basierend auf LuaLaTeX.
Lua
13
star
7

Nova-TeX-Suite

Nova support for TeX, LaTeX and ConTeXt
JavaScript
7
star
8

ParserTools

tools for writing lexers / parsers in Ada
Ada
6
star
9

libyaml_constructor

Code generator to load YAML into C types
C
6
star
10

ada-bundler

Library and tool for transparently handling data and configuration file access in an Ada application. Supports MacOSX, Linux and Windows.
Ada
5
star
11

gps-osx

Native GNAT Programming Studio for OSX
Ada
5
star
12

nova-nix-suite

Nix extension for Nova.app
Scheme
4
star
13

NovaZig

Zig support for the Nova editor
Scheme
4
star
14

OpenGLAda-examples

Examples for OpenGLAda
Ada
4
star
15

nix-flakes-go-plugins

Article about building Go applications that support plugins with Nix Flakes
Nix
4
star
16

zargo

2D OpenGL drawing lib for zig
C
2
star
17

askew

code generator & framework for single-page GopherJS/WASM apps
Go
2
star
18

js-audio-fiddle

Fiddling with the Web Audio API and stuff
JavaScript
1
star
19

Con-Checkliste

CSS
1
star
20

DSA-Heldendokument-Generator

Java Bibliothek + GUI für plattformübergreifende DSA Heldendokumenterstellung
Java
1
star
21

DSA-Liber-Reprints

Nix
1
star
22

FreeTypeAda

FreeType binding for Ada 2012
Ada
1
star
23

soqualpoints

Punktemanagement für universitäre Übungsveranstaltungen
PHP
1
star