Skip to content

djoezeke/myyaml

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

35 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

πŸš€ MYYAML : Modern C/C++ YAML Library

Lightweight, modern, and easy-to-use C++ YAML serializer & deserializer.

license last-commit repo-top-language repo-language-count

Table of Contents

πŸ“ Overview

Myyaml is a modern, lightweight YAML parsing and serialization library for C++. It provides an easy-to-use interface for working with YAML data, including parsing YAML strings, creating YAML objects, and serializing YAML objects to strings.It provides a simple, type-safe API for working with YAML data in C++ projects.

YAML Logo

Yaml [YAML Ain't Markup Language]

A Human-friendly data serialization.

YAML is one of the most popular data serialization languages, and it is used mostly for writing configuration files. The YAML recursive acronym stands for YAML Ain’t Markup Language. This language is designed with flexibility and accessibility in mind, so it’s human-readable and simple to understand. YAML works with all modern programming languages and is widely used in data persistence, internet messaging, cross-language data sharing, and many other places. YAML files either have the extension .yaml or .yml.

More information about YAML can be obtained at here

πŸ“ Project Structure
myyaml/
β”œβ”€β”€ CMakeLists.txt
β”œβ”€β”€ LICENSE
β”œβ”€β”€ myyaml.hpp
β”œβ”€β”€ myyaml.cpp
β”œβ”€β”€ tests/
β”‚   β”œβ”€β”€ test.c
β”‚   └── test.cpp
└── examples/
    β”œβ”€β”€ basic.c
    β”œβ”€β”€ basic.cpp
    └── sample.cpp

πŸš€ Getting Started

β˜‘οΈ Prerequisites

Please ensure your runtime environment meets the following requirements:

  • C++11 or newer compiler
  • CMake (for building examples/tests)

Myyaml uses following software, tools and services:

  • CMake as a general build tool
  • (optional) Catch2 for unit and performance testing
  • (optional) Mkdocs to build web documentation
  • (optional) Doxygen to build code documentation

πŸ› οΈ Integration

  1. Clone the repository:

    git clone https://github.com/djoezeke/myyaml.git
  2. Add to your project:

    • Copy myyaml.hpp and myyaml.cpp into your project.
    • Or add as a submodule and include in your build.
  3. Include in your code:

    #include "myyaml.hpp"
  4. Compile:

    g++ my_source.cpp myyaml.cpp -std=c++17 -o main

Support

πŸ€” If you have a question, please check if it is already answered in the FAQ or the Q&A section. If not, please ask a new question there.

πŸ““ If you want to learn more about how to use the library, check out the rest of the README, have a look at code examples, or browse through the help pages.

🚧 If you want to understand the API better, check out the API Reference. 🐞 If you found a bug, please check the FAQ if it is a known issue or the result of a design decision. Please also have a look at the issue list before you create a new issue. Please provide as much information as possible to help us understand and reproduce your issue.

🀝 Contributing

Contributing Guidelines
  1. Fork the Repository: Start by forking the project repository to your github account.
  2. Clone Locally: Clone the forked repository to your local machine using a git client.
    git clone https://github.com/djoezeke/myyaml
  3. Create a New Branch: Always work on a new branch, giving it a descriptive name.
    git checkout -b new-feature-x
  4. Make Your Changes: Develop and test your changes locally.
  5. Commit Your Changes: Commit with a clear message describing your updates.
    git commit -m 'Implemented new feature x.'
  6. Push to github: Push the changes to your forked repository.
    git push origin new-feature-x
  7. Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
  8. Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!

See the CONTRIBUTING.md file for detailed information.

Contributor Graph

πŸ™Œ Acknowledgments

We would like to express our gratitude to the following projects and individuals whose work made this project possible:

The open-source community for their invaluable libraries, tutorials, and support.

With thanks to:

Note

If you feel your work should be acknowledged here, please open an issue or pull request.

References

  • myyaml : A C/C++ YAML Library.
  • myjson : A C/C++ JSON Library.
  • mytoml : A C/C++ TOML Library.

More Reading

πŸ“„ License

This project is protected under the MIT License.

About

Myyaml - Simple and Fast Yaml Ain't Markup Language (YAML) Parser for Modern C/C++.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Languages