{"id":15047268,"url":"https://github.com/devvoid/vini","last_synced_at":"2025-06-27T01:32:13.998Z","repository":{"id":194505221,"uuid":"130161645","full_name":"devvoid/vini","owner":"devvoid","description":"A single-header INI parser capable of both reading and writing files.","archived":false,"fork":false,"pushed_at":"2018-04-21T22:39:50.000Z","size":50,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-10T00:51:09.980Z","etag":null,"topics":["c-plus-plus","cpp","cpp-library","cpp98","ini","ini-parser","no-dependencies","single-file","single-header","single-header-lib"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devvoid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-04-19T05:04:47.000Z","updated_at":"2023-08-18T09:08:00.000Z","dependencies_parsed_at":"2023-09-13T18:04:33.831Z","dependency_job_id":null,"html_url":"https://github.com/devvoid/vini","commit_stats":null,"previous_names":["devvoid/vini"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/devvoid/vini","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devvoid%2Fvini","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devvoid%2Fvini/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devvoid%2Fvini/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devvoid%2Fvini/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devvoid","download_url":"https://codeload.github.com/devvoid/vini/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devvoid%2Fvini/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262172377,"owners_count":23269996,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-plus-plus","cpp","cpp-library","cpp98","ini","ini-parser","no-dependencies","single-file","single-header","single-header-lib"],"created_at":"2024-09-24T20:55:53.811Z","updated_at":"2025-06-27T01:32:13.937Z","avatar_url":"https://github.com/devvoid.png","language":"C++","readme":"# VINI (Void's INI Parsing Library)\nA small, single-header library for reading/writing INI files.\n\n## Usage\n\n```c++\n#include \u003cstring\u003e\n#include \"vini.hpp\"\n\nint main() {\n    //Load INI file from existing file.\n    Vini file_one(\"test.ini\");\n    \n    //Create a blank file; use this to create an INI from scratch\n    Vini file_two;\n\n    //Get a value from the INI file.\n    //The first argument is the section to search from.\n    //The second argument is the key to get content from.\n    //The third argument is a default value.\n    //If the section or key does not exist, that value will be created in that section or key.\n    //In addition, the function will return that default value.\n    std::string returned_string = file_two.get(\"main\", \"key\", \"default_value\");\n\n    //Sets a value in the INI file.\n    //The arguments are all the same as the get function.\n    //This function returns nothing.\n    //It will also overwrite any existing values in that section/key if one already exists.\n    file_two.set(\"main\", \"otherkey\", \"Hello, world!\");\n\n    //Write file to disk.\n    file_two.save(\"output.ini\");\n}\n```\n\nOutput:\n```ini\n[main]\nkey=\"default_value\"\notherkey=\"Hello, world!\"\n```\n\nNote that Vini does not provide any functions for getting any data types from an INI file other than a std::string. This was intentional; Vini is designed to have a simple API, small filesize, and simple implimentation. The C++ standard library has plenty of functions for converting strings into other datatypes anyway.\n\n## License\n\nLicensed under either of\n\n * Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)\n * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)\n\nat your option.\n\n### Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any\nadditional terms or conditions.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevvoid%2Fvini","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevvoid%2Fvini","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevvoid%2Fvini/lists"}