{"id":15047301,"url":"https://github.com/end2endzone/rapidassist","last_synced_at":"2025-04-10T00:51:05.058Z","repository":{"id":47457245,"uuid":"130471874","full_name":"end2endzone/RapidAssist","owner":"end2endzone","description":"RapidAssist is a lite cross-platform library that assist you with the most c++ repetitive tasks.","archived":false,"fork":false,"pushed_at":"2025-02-11T14:35:15.000Z","size":1735,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-10T00:50:57.189Z","etag":null,"topics":["cpp","cpp98","cross-platform","quick","repetitive"],"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/end2endzone.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-21T12:32:44.000Z","updated_at":"2025-02-11T14:32:38.000Z","dependencies_parsed_at":"2025-02-11T15:37:33.979Z","dependency_job_id":null,"html_url":"https://github.com/end2endzone/RapidAssist","commit_stats":null,"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/end2endzone%2FRapidAssist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/end2endzone%2FRapidAssist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/end2endzone%2FRapidAssist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/end2endzone%2FRapidAssist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/end2endzone","download_url":"https://codeload.github.com/end2endzone/RapidAssist/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248137997,"owners_count":21053775,"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","cpp98","cross-platform","quick","repetitive"],"created_at":"2024-09-24T20:56:15.317Z","updated_at":"2025-04-10T00:51:05.031Z","avatar_url":"https://github.com/end2endzone.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n![RapidAssist logo](docs/RapidAssist-splashscreen.jpg?raw=true)\n\n\n# RapidAssist #\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Github Releases](https://img.shields.io/github/release/end2endzone/rapidassist.svg)](https://github.com/end2endzone/rapidassist/releases)\n\nRapidAssist is a lite cross-platform library that assist you with the most c++ repetitive task.\n\n\n\n## Status ##\n\nBuild:\n\n| Service/Platform    | Build                                                                                                                                                                                           | Tests                                                                                                                                                                                                                                                          |\n|---------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| AppVeyor            | [![Build status](https://img.shields.io/appveyor/ci/end2endzone/RapidAssist/master.svg?logo=AppVeyor\u0026logoColor=white)](https://ci.appveyor.com/project/end2endzone/rapidassist)                 | [![Tests status](https://img.shields.io/appveyor/tests/end2endzone/rapidassist/master.svg?logo=AppVeyor\u0026logoColor=white)](https://ci.appveyor.com/project/end2endzone/rapidassist/branch/master/tests)                                                         |\n| Travis CI           | [![Build Status](https://img.shields.io/travis/end2endzone/RapidAssist/master.svg?logo=Travis-CI\u0026style=flat\u0026logoColor=white)](https://travis-ci.org/end2endzone/RapidAssist)                    |                                                                                                                                                                                                                                                                |\n| Windows Server 2019 | [![Build on Windows](https://github.com/end2endzone/RapidAssist/actions/workflows/build_windows.yml/badge.svg)](https://github.com/end2endzone/RapidAssist/actions/workflows/build_windows.yml) | [![Tests on Windows](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/end2endzone/58cf6c72c08e706335337d5ef9ca48e8/raw/RapidAssist.master.Windows.json)](https://github.com/end2endzone/RapidAssist/actions/workflows/build_windows.yml) |\n| Ubuntu 20.04        | [![Build on Linux](https://github.com/end2endzone/RapidAssist/actions/workflows/build_linux.yml/badge.svg)](https://github.com/end2endzone/RapidAssist/actions/workflows/build_linux.yml)       | [![Tests on Linux](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/end2endzone/58cf6c72c08e706335337d5ef9ca48e8/raw/RapidAssist.master.Linux.json)](https://github.com/end2endzone/RapidAssist/actions/workflows/build_linux.yml)       |\n| macOS 10.15         | [![Build on macOS](https://github.com/end2endzone/RapidAssist/actions/workflows/build_macos.yml/badge.svg)](https://github.com/end2endzone/RapidAssist/actions/workflows/build_macos.yml)       | [![Tests on macOS](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/end2endzone/58cf6c72c08e706335337d5ef9ca48e8/raw/RapidAssist.master.macOS.json)](https://github.com/end2endzone/RapidAssist/actions/workflows/build_macos.yml)       |\n\nStatistics:\n\n| AppVeyor                                                                                                                                               | Travic CI                                                                                                                      | GitHub                                                                                                                             |\n|--------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|\n| [![Statistics](https://buildstats.info/appveyor/chart/end2endzone/rapidassist)](https://ci.appveyor.com/project/end2endzone/rapidassist/branch/master) | [![Statistics](https://buildstats.info/travisci/chart/end2endzone/RapidAssist)](https://travis-ci.org/end2endzone/RapidAssist) | [![Statistics](https://buildstats.info/github/chart/end2endzone/rapidassist)](https://github.com/end2endzone/RapidAssist/actions/) |\n\n\n\n\n# Philosophy #\nBecause of the cross-platform nature of the library, the code can get bulky pretty quick (or even messy in some case) because each different operating system has its own quirks and challenges.\n\nThe intention of RapidAssist is to be used as a library companion by providing a quick access to the most c++ repetitive tasks. The library aims to be _lite_, _easy to use_ and _intuitive_.\n\nTo get the code easy to understand, all functions are grouped by category and each category is defined by a namespace which helps increase cohesion between the code of each platform. The namespaces also help reduce coupling between categories.\n\nThe categories are `cli` (command line interface), `code`, `console`, `environment`, `filesystem`, `generics`, `testing`, `logging`, `process`, `random`, `strings`, `timing` and `unicode`.\n\nThe library does not intent to replace [Boost](https://www.boost.org/) or other full-featured cross-platform libraries.\n\n\n\n\n# Usage #\n\nThe following instructions show how to use the library.\n\n\n\n## Using RapidAssist in a CMake project ##\n\nUsing the library in other projects is relatively easy as the library supports the [find_package()](https://cmake.org/cmake/help/v3.4/command/find_package.html) command.\nThe following section explains how a client executable shall 'find' the RapidAssist library using `find_package()` command. For the example below, assume one wants to compile the `fooexe` executable target which have a dependency to the RapidAssist library.\n\nTo create a project that have a dependency on RapidAssist, the `CMakeLists.txt` configuration file should look like this:\n\n```cmake\nfind_package(rapidassist 0.4.0 REQUIRED)\nadd_executable(fooexe \u003csource_files\u003e )\ntarget_link_libraries(fooexe rapidassist)\n```\n\nNote that the `target_include_directories()` command is not required. The `fooexe` target will automatically have the `rapidassist` include directories assigned to the project.\n\nIn order for the `find_package()` command to automatically find the library, both RapidAssist and your project must be installed to the same installation directory.\nHowever, on Windows, the CMake default installation directory is `C:\\Program Files (x86)\\${PROJECT_NAME}`. This makes the installation directory different for each projects. One must specify the RapidAssist's installation directory manually.\nThe installation path of RapidAssist can be specified manually by defining the `rapidassist_DIR` environment variable to RapidAssist installation directory. The `rapidassist_DIR` environment variable instruct CMake to use this directory while searching. By manually specifying the RapidAssist's install directory, the `find_package()` command will be able to resolve the path of RapidAssist and locate the include directory and library files.\n\n\n\n## Source code example ##\nThe following section shows multiple examples of using RapidAssist.\n\n```cpp\nTEST_F(TestDemo, testCodeSample)\n{\n  //create a dummy file based on current gtest name\n  static const int FILE_SIZE = 1000; //bytes\n  const std::string path = ra::testing::getTestQualifiedName() + \".tmp\"; //returns \"TestDemo.testCodeSample.tmp\"\n  ASSERT_TRUE( ra::testing::createFile(path.c_str(), FILE_SIZE) );\n  \n  //test that a generated file is equals to the expected file\n  std::string generatedFile = generateTestFile();\n  std::string expectedFile = getExpectedTestFilePath();\n  ASSERT_TRUE ( ra::testing::isFileEquals( expectedFile.c_str(), generatedFile.c_str()) );\n\n  //split a string into multiple parts\n  StringVector words = ra::strings::split(\"The quick brown fox jumps over the lazy dog\", \" \");\n  size_t numWords = words.size(); //returns 9\n\n  //converting numeric values to string\n  std::string IntMaxStr = ra::strings::toString(UINT64_MAX); //returns \"18446744073709551615\"\n\n  //execute search and replace in strings\n  std::string whoiam = \"My name is Antoine and I am a superhero.\";\n  int numReplaced = ra::strings::replace(whoiam, \"hero\", \"vilan\"); //returns 1\n}\n```\n\n\n\n\n# Build #\n\nPlease refer to file [INSTALL.md](INSTALL.md) for details on how installing/building the application.\n\n\n\n\n# Platform #\n\nRapidAssist has been tested with the following platform:\n\n* Linux, 32 and 64 bit\n* Windows, 32 and 64 bit\n* macOS, 32 and 64 bit\n\n\n\n\n# Versioning #\n\nWe use [Semantic Versioning 2.0.0](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/end2endzone/RapidAssist/tags).\n\n\n\n\n# Authors #\n\n* **Antoine Beauchamp** - *Initial work* - [end2endzone](https://github.com/end2endzone)\n\nSee also the list of [contributors](https://github.com/end2endzone/RapidAssist/blob/master/AUTHORS) who participated in this project.\n\n\n\n\n# License #\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fend2endzone%2Frapidassist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fend2endzone%2Frapidassist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fend2endzone%2Frapidassist/lists"}