Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mohido/tiny_yaml
A powerful lightweight YAML parser library for C++
https://github.com/mohido/tiny_yaml
cpp library parser yaml
Last synced: 7 days ago
JSON representation
A powerful lightweight YAML parser library for C++
- Host: GitHub
- URL: https://github.com/mohido/tiny_yaml
- Owner: Mohido
- License: mit
- Created: 2022-08-07T17:39:02.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-11-01T15:48:48.000Z (14 days ago)
- Last Synced: 2024-11-01T16:28:53.982Z (14 days ago)
- Topics: cpp, library, parser, yaml
- Language: C++
- Homepage:
- Size: 8.79 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Tiny_Yaml
A powerful simple lightweight YAML parser library for C++. There are lots of libraries which parse yaml files in C++, yet they are cumbersome and very heavy to include
in a performance-matter project, thus increasing the need for a minimal robust parser.---
## Features:
1. Very easy to integrate to your project:
1. Copy the `yaml/` directory to your project.
2. Include the `yaml.hpp` file in your source code.
3. Add the `yaml.cpp` to the compiler and linker.2. Robust and Recovery:
* Simple indentation errors are recoverable. The parser will try its best to find the best suit for the yaml layout even if there are unconsistant indentations.
* Abilty to parse list-elements and list-nodes. These happen when a parent node either has a list of nodes or elements attached to it.
3. Simple to Use:
* Retreiving values of nodes or lists are quite simple and intuitive. Note, the syntax is shown below.---
## How to Use:
The content below represents a yaml file, then a set of examples on how to extract the data:> `example.yaml`
```
object:
name: "mohido"
property: "cool as hell"
version: 123
academy: "333"
list:
- item1
- item2
- item3
node_list:
- name : "node1"
value: 1
hell:
- item1: "sang"
- item1: "mang"
- name : "node2"
value: 2
temp: extra
extra:
- extra1
- extra2
- extra3
```First of all, create a yaml parser object:
```
YAML::Yaml coolYamlObject();
```
- value `"mohido"` of `object.name` can be accessed as follows:
```
coolYamlObject["object"]["name"].getData();
```- value `123` of `version` can be accessed as follows:
```
coolYamlObject["version"].getData();
```- value `item1` of `list[0]` can be accessed as follows:
```
coolYamlObject["list"].getData>()[0];
```- value `"node1"` of `node_list[0].name` can be accessed as follows:
```
coolYamlObject["node_list"]["0"]["name"].getData();
```- value `extra3` of `node_list[1].extra[2]` can be accessed as follows:
```
coolYamlObject["node_list"]["1"]["extra"].getData>()[2];
```
---## Notes:
- Contributions are welcome!
- Bugs/Suggestions/Reports can be created as issues on Github with the desired label.