{"id":16837803,"url":"https://github.com/zhreshold/zupply","last_synced_at":"2025-03-22T04:31:04.877Z","repository":{"id":46146481,"uuid":"41337871","full_name":"zhreshold/zupply","owner":"zhreshold","description":"Essential light-weight portable C++ 11 library dealing with images/files/systems for researches and demos","archived":false,"fork":false,"pushed_at":"2019-05-14T21:04:57.000Z","size":1202,"stargazers_count":44,"open_issues_count":5,"forks_count":12,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-18T08:21:27.620Z","etag":null,"topics":["argument-parser","configuration-parser","date-time","filesystem","image-processing","logger","progress-bar"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zhreshold.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-08-25T02:19:03.000Z","updated_at":"2023-11-20T02:35:39.000Z","dependencies_parsed_at":"2022-09-24T14:50:51.732Z","dependency_job_id":null,"html_url":"https://github.com/zhreshold/zupply","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhreshold%2Fzupply","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhreshold%2Fzupply/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhreshold%2Fzupply/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhreshold%2Fzupply/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zhreshold","download_url":"https://codeload.github.com/zhreshold/zupply/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244907420,"owners_count":20529850,"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":["argument-parser","configuration-parser","date-time","filesystem","image-processing","logger","progress-bar"],"created_at":"2024-10-13T12:18:52.248Z","updated_at":"2025-03-22T04:31:04.265Z","avatar_url":"https://github.com/zhreshold.png","language":"C++","readme":"# Zupply - A light-weight portable C++ 11 library for Researches and Demos\n\n![Build Status](https://travis-ci.org/zhreshold/zupply.svg?branch=master)\n[![License](https://img.shields.io/:license-MIT-blue.svg)](./LICENSE)\n\n## Introduction\n**Zupply** is a light-weight, cross-platform, easy to use C++11 library packed with fundamental functions/classes best\nfor reaserches/small projects/demos.\n\n#### Why Zupply\n- Tired of repetitive coding on reading/writing files? Logging messages? Loading configurations?\n- Feel desperate transferring code to another platform because you hard-coded in platform specific ways?\n- Reluctant to use Boost because it's too heavy-weight?\n- Hate setting up environments on a clean computer without any develop library which is required to be linked by many programs?\n- Just want to build a small demo, why bother libraries such as OpenCV just for reading/writing images?\n\n- ##### If you agree at least two of them, zupply will be the right tool.\n\n#### Features\n- Zero dependency, only C++ 11 standard\n- Designed to be easily included in projects, no need to link\n- Pure and clean, everything encapsulated in namespace zz, almost no pollution if you don't expose the namespace ([explain](https://github.com/ZhreShold/zupply/wiki/Why-not-single-file-and-header-only%3F))\n- Targeting Linux/Windows/Mac OS X/Partial Unix based OSes, meanwhile providing unified experience coding on each platform\n\n#### What's included\n- CLI [Argument-parser](https://github.com/ZhreShold/zupply/wiki/Argument-Parser)\n- INI/CFG [Configuration-file-parser](https://github.com/ZhreShold/zupply/wiki/Configuration-file-parser)\n- Easy to use [Timer and DateTime](https://github.com/ZhreShold/zupply/wiki/Date-and-Timer) classes to measure time and datetime\n- Fast sync/async [Logger](https://github.com/ZhreShold/zupply/wiki/Logger) with rich information and highly configurable\n- Cross-platform functions to handle [filesystems](https://github.com/ZhreShold/zupply/wiki/Filesystem). (create directory, check file existence, iterate through folder etc...)\n- Various [formatting](https://github.com/ZhreShold/zupply/wiki/Format) functions to (trim/split/replace/...) strings\n- Thread safe data structures for specific purposes\n- [ProgBar](https://github.com/ZhreShold/zupply/wiki/Progress-Bar) class that is designed for displaying progress bar inside consoles\n- [Image and ImageHdr](https://github.com/ZhreShold/zupply/wiki/Handle-image) class to do basic operations with image, for example, read(JPG, PNG, BMP, TGA, PSD, GIF, HDR, PIC)/write(JPG, PNG, TGA, BMP), crop, resize, pixel-wise access.\n- A lot more\n\n#### What's under construction\n- Serializer/Deserializer: for dump/read objects to/from string directly, binary should also be supported\n\n\n## Usage\n#### zupply is designed to be as easy to integrate as possible, thus you can:\n- Copy **zupply.hpp** and **zupply.cpp** into your project\n- Start writing code\n```c++\n#include \"zupply.hpp\"\nusing namespace zz; // optional using namespace zz for ease\n\n// write your own code\nint main(int argc, char** argv)\n{\n    auto logger = log::get_logger(\"default\");\n    logger-\u003einfo(\"Welcome to zupply!\");\n    return 0;\n}\n```\n- Build and run\n\n##### Note: you will need a compiler which support C++11 features, the following compilers/libraries are tested\n\n#### You can start from scratch with quickstart.cpp in src folder\n- vc++12(Visual Studio 2013) or newer\n```\n# create visual studio project require cmake\ncd build \u0026 create_visual_studio_2013_project.bat\n```\n- g++ 4.8.1 or newer(link pthread because gcc requires it!!)\n```\n# with cmake\ncd build\ncmake .\nmake\n# or manual build without cmake\ncd build\ng++ -std=c++11 -pthread ../unittest/unittest.cpp ../src/zupply.cpp -lpthread -o unittest\n```\n- Clang++ 3.3 or newer\n```\n# using cmake is identical to gcc\n# or manually build with clang++\ncd build\nclang++ -std=c++11 ../unittest/unittest.cpp ../src/zupply.cpp -o unittest\n```\n\n## Documentation\nFull [documentation](http://zhreshold.github.io/zupply/) supplied.\n\n## Tutorials\nFor tutorials, please check Zupply [Wiki](https://github.com/ZhreShold/zupply/wiki)!\n\n## License\nZupply uses very permissive [MIT](https://opensource.org/licenses/MIT) license.\n\n## Credits\n- [UTF8-CPP](http://utfcpp.sourceforge.net/)\n- [STB-Image](https://github.com/nothings/stb)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhreshold%2Fzupply","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzhreshold%2Fzupply","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhreshold%2Fzupply/lists"}