{"id":22475200,"url":"https://github.com/tychosoft/moderncli","last_synced_at":"2025-07-06T00:05:42.226Z","repository":{"id":266534654,"uuid":"815910641","full_name":"tychosoft/moderncli","owner":"tychosoft","description":"C++17 header only library for common uses.","archived":false,"fork":false,"pushed_at":"2025-06-27T20:27:11.000Z","size":581,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-27T21:30:02.703Z","etag":null,"topics":["cpp","cross-platform","cryptography","header-only","lock-free","logging-library","multithreading","serial","socket-programming","ssl","string-manipulation","sync"],"latest_commit_sha":null,"homepage":"http://www.tychosoft.com/tychosoft/moderncli","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/tychosoft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-06-16T13:58:47.000Z","updated_at":"2025-06-27T20:27:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"4e381c17-e1b7-4d09-8f1e-3d7559dee70c","html_url":"https://github.com/tychosoft/moderncli","commit_stats":null,"previous_names":["tychosoft/moderncli"],"tags_count":28,"template":false,"template_full_name":null,"purl":"pkg:github/tychosoft/moderncli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tychosoft%2Fmoderncli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tychosoft%2Fmoderncli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tychosoft%2Fmoderncli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tychosoft%2Fmoderncli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tychosoft","download_url":"https://codeload.github.com/tychosoft/moderncli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tychosoft%2Fmoderncli/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263827845,"owners_count":23516789,"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":["cpp","cross-platform","cryptography","header-only","lock-free","logging-library","multithreading","serial","socket-programming","ssl","string-manipulation","sync"],"created_at":"2024-12-06T13:14:22.230Z","updated_at":"2025-07-06T00:05:42.216Z","avatar_url":"https://github.com/tychosoft.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# About ModernCLI\n\nModerncli is a package that collects and centralizes testing for many of my\ninline C++ header libraries, which I had duplicated or vendored in other\npackages in the past. These headers are being gathered under a common package\nof their own that can then be installed as a core dependency. Hence, one\ninterpretation for this package is \"Modern C++\" Library Interfaces. Moderncli\nis meant to support C++ 17 thru C++23 with consistent source behavior.\n\nModerncli headers are meant to be usable stand-alone and provide generic\ncross-platform low level wrappers around common system features and services.\nThis makes it easier to include just what you need without drawing in\nadditional headers you may not be using. This also makes it easy to substitute\nother common C++ libraries without having to include duplication functionality\nfrom moderncli.\n\nModerncli requires CMake to build the testing framework. It should build and\nwork with GCC (9 or later), with Clang (14? or later), and MSVC. Besides\nGNU/Linux and BSD systems, Moderncli is portable to and can support the MingW\nplatform target as installed by Debian when selecting posix runtime, and even\nnative MS Visual Studio builds. The minimum requirement is a C++17 compiler (or\nlater) that supports the C++ filesystem header and runtime library.\n\n## Dependencies\n\nModerncli and applications also often make use of the C++ library libfmt. This\nallows C++17 applications to use modern string and print formatting operations\nlike from C++23 and later. If you are building applications for C++20 or later,\nor you do not also use the moderncli print header for output, you do not need\nto use or link with libfmt.\n\nModerncli also uses openssl for crypto operations and ssl streams in any crypto\nnamespace related headers. Generally, if your not using secure streams, but\ndoes use a moderncli crypto header (sign, cipher, digests, bignum, and random),\nyou should do require libcrypto from openssl. If you use secure streaming you\nwill also require openssl libssl. In addition, C++ thread support may have to\nbe enabled to use C++ thread operations. The cmake/features.cmake file shows\nhow to test for and enable these dependencies correctly from CMake.\n\n## Distributions\n\nDistributions of this package are provided as detached source tarballs made\nfrom a tagged release from our public gitlab repository or by building the dist\ntarget. These stand-alone detached tarballs can be used to make packages for\nmany GNU/Linux systems, and for BSD ports. They may also be used to build and\ninstall the software directly on a target platform.\n\nThe latest public release source tarball can be produced by an auto-generated\ntarball from a tagged release in the projects public git repository at\nhttps://gitlab.com/tychosoft/moderncli. Moderncli can also be easily vendored\nin other software using git modules from this public repo. I also package\nModerncli for Alpine Linux. There is no reason this cannot easily be packaged\nfor use on other distributions, for BSD ports, vcpkg, etc, as well.\n\n## Participation\n\nThis project is offered as free (as in freedom) software for public use and has\na public project page at https://www.gitlab.com/tychosoft/moderncli which has\nan issue tracker where you can submit public bug reports and a public git\nrepository. Patches and merge requests may be submitted in the issue tracker\nor thru email. Support requests and other kinds of inquiries may also be sent\nthru the tychosoft gitlab help desktop service. Other details about\nparticipation may be found in CONTRIBUTING.md.\n\n## Testing\n\nThere is a testing program for each header. These run simple tests that will be\nexpanded to improve code coverage over time. The test programs are the only\nbuild target making this library by itself, and the test programs in this\npackage work with the cmake ctest framework. They may also be used as simple\nexamples of how a given header works. There is also a **lint** target that can\nbe used to verify code changes.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftychosoft%2Fmoderncli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftychosoft%2Fmoderncli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftychosoft%2Fmoderncli/lists"}