Skip to content

djoezeke/mytoml

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

26 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

πŸš€ MYTOML : Modern C/C++ TOML Library

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

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

Table of Contents

πŸ“ Overview

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

TOML Logo

Toml [Tom's Obvious Minimal Language]

A config file format for humans.

TOML aims to be a minimal configuration file format that's easy to read due to obvious semantics. TOML is designed to map unambiguously to a hash table. TOML should be easy to parse into data structures in a wide variety of languages.

More information about TOML can be obtained at here

πŸ“ Project Structure
mytoml/
β”œβ”€β”€ CMakeLists.txt
β”œβ”€β”€ LICENSE
β”œβ”€β”€ mytoml.hpp
β”œβ”€β”€ mytoml.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)

Mytoml 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/mytoml.git
  2. Add to your project:

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

    #include "mytoml.hpp"
  4. Compile:

    g++ my_source.cpp mytoml.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/mytoml
  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

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

More Reading

πŸ“„ License

This project is protected under the MIT License.

About

Mytoml - Simple and Fast Tom's Obvious, Minimal Language (TOML) Parser for Mordern C/C++.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published