{"id":23924547,"url":"https://github.com/scandyna/mdtplaintext","last_synced_at":"2026-04-12T08:40:05.819Z","repository":{"id":146525943,"uuid":"270293218","full_name":"scandyna/MdtPlainText","owner":"scandyna","description":"Provides some libraries to read and write simple plain text using the boost Spirit library. The main use case is a CSV parser that should read files conforming to CSV-1203 and RFC-4180 standards.","archived":false,"fork":false,"pushed_at":"2025-11-29T10:33:39.000Z","size":664,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"experimental","last_synced_at":"2025-12-01T11:55:07.785Z","etag":null,"topics":["csv","csv-parser","qstring","qt"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scandyna.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","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}},"created_at":"2020-06-07T12:03:58.000Z","updated_at":"2025-11-29T10:33:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"0dccaf63-db41-450c-ad18-ba9867d0d217","html_url":"https://github.com/scandyna/MdtPlainText","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/scandyna/MdtPlainText","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scandyna%2FMdtPlainText","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scandyna%2FMdtPlainText/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scandyna%2FMdtPlainText/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scandyna%2FMdtPlainText/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scandyna","download_url":"https://codeload.github.com/scandyna/MdtPlainText/tar.gz/refs/heads/experimental","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scandyna%2FMdtPlainText/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31709294,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-12T06:22:27.080Z","status":"ssl_error","status_checked_at":"2026-04-12T06:21:52.710Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["csv","csv-parser","qstring","qt"],"created_at":"2025-01-05T19:15:29.843Z","updated_at":"2026-04-12T08:40:05.805Z","avatar_url":"https://github.com/scandyna.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n| Topic                    | Status                                                                                                                                 |\n|:-------------------------|:---------------------------------------------------------------------------------------------------------------------------------------|\n| `Build / test (CI)`  | [![pipeline status](https://gitlab.com/scandyna/mdtplaintext/badges/experimental/pipeline.svg)](https://gitlab.com/scandyna/mdtplaintext/-/commits/experimental)   |\n| `Coverity`               | [![Coverity](https://scan.coverity.com/projects/21719/badge.svg)](https://scan.coverity.com/projects/scandyna-mdtplaintext) |\n| `OpenHub`                | [View on OpenHub](https://www.openhub.net/p/MdtPlainText) |\n\n# MdtPlainText\n\nProvides some libraries to read and write simple plain text\nusing the [boost Spirit](https://www.boost.org/doc/libs/1_73_0/libs/spirit/doc/html/index.html) library.\n\nThe main use case is a CSV parser, that should read files conform to\n[CSV-1203](https://idoc.pub/documents/csv-file-format-specification-standard-csv-1203-6nq88y5xr9nw)\nand\n[RFC 4180](https://tools.ietf.org/html/rfc4180)\n\n\n# Usage\n\nFor the available classes, functions, and their usage,\nsee [the API documentation](https://scandyna.gitlab.io/mdtplaintext)\n\n## Required tools and libraries\n\nSome tools and libraries are required to use MdtPlainText:\n - Git\n - CMake\n - Conan (optional)\n - A compiler (Gcc or Clang or MSVC)\n - Make (optional)\n - Qt5 (optional: for libraries with Qt support or for the tests)\n\nFor a overview how to install them, see https://gitlab.com/scandyna/build-and-install-cpp\n\n## CMake project description\n\nUpdate your CMakeLists.txt to use the required libraries:\n```cmake\ncmake_minimum_required(VERSION 3.15)\nproject(MyApp)\n\nfind_package(Mdt0 REQUIRED COMPONENTS PlainText)\n\nadd_executable(myApp myApp.cpp)\ntarget_link_libraries(myApp Mdt0::PlainText)\n```\n\nIf you use Qt, you can use `PlainText_QtCore`:\n```cmake\ncmake_minimum_required(VERSION 3.15)\nproject(MyApp)\n\nfind_package(Qt5 REQUIRED COMPONENTS Widgets)\nfind_package(Mdt0 REQUIRED COMPONENTS PlainText_QtCore)\n\nadd_executable(myApp myApp.cpp)\ntarget_link_libraries(myApp Mdt0::PlainText_QtCore)\n```\n\n## Project using Conan\n\nIf you use [Conan](https://conan.io/),\nadd MdtPlainText as requirement in your `conanfile.txt`:\n```conan\n[requires]\nmdtplaintext/x.y.z@scandyna/testing\n\n[generators]\nCMakeDeps\nCMakeToolchain\nVirtualBuildEnv\n```\n\nIf you need better unicode support,\nyou may choose the Qt based one:\n```conan\n[requires]\nmdtplaintext_qtcore/x.y.z@scandyna/testing\n\n[generators]\nCMakeDeps\nCMakeToolchain\nVirtualBuildEnv\n```\n\n# Build and install MdtPlainText\n\nThis chapter covers only the installation of the library.\nTo run the unit tests, see the next chapter.\n\nGet MdtPlainText:\n```bash\ngit clone git@gitlab.com:scandyna/mdtplaintext.git\n```\n\nCreate a build directory and cd to it:\n```bash\nmkdir build\ncd build\n```\n\n## Note about install prefix\n\nSome note on the `CMAKE_INSTALL_PREFIX`:\n - To target a system wide installation on Linux, set it to `/usr` (`-DCMAKE_INSTALL_PREFIX=/usr`) .\n - For other locations, spcecify also the `\u003cpackage-name\u003e`, (for example `-DCMAKE_INSTALL_PREFIX=~/opt/MdtPlainText`).\n\nFor details about that, see:\n - https://scandyna.gitlab.io/mdt-cmake-modules/Modules/MdtInstallDirs.html\n - https://cmake.org/cmake/help/latest/variable/CMAKE_INSTALL_PREFIX.html\n - https://scandyna.gitlab.io/mdt-cmake-modules/Modules/MdtInstallLibrary.html\n\n## Build and install MdtPlainText using Conan\n\nThis is the recommended way.\n\n## Project configuration using Conan\n\nMdtPlainText has those dependencies:\n - [mdt-cmake-modules](https://gitlab.com/scandyna/mdt-cmake-modules)\n - boost\n - Qt\n\nHere are the available options:\n\n| Option           | Default | Possible Values  | Explanations |\n| -----------------|:------- |:----------------:|--------------|\n| shared           | True    |  [True, False]   | Build as shared library |\n\n### Using Conan profiles\n\nWhen using Conan for dependency management,\nit is recommended to use Conan profiles.\nThis permits to have personal binary repository,\navoiding to recompile everything everytime.\nThis becomes more important if Qt is managed by Conan.\n\nThis requires modifications in the `settings_user.yml` Conan configuration,\nand also some profile files.\nSee my [conan-config repository](https://gitlab.com/scandyna/conan-config) for more informations.\n\nSome following sections will rely on Conan profiles.\n\n### Build and install on Linux with the native compiler\n\nInstall the dependencies:\n```bash\nconan install -s build_type=Release --build=missing ..\n```\n\nConfigure MdtPlainText:\n```bash\ncmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=~/opt/MdtPlainText ..\ncmake-gui .\n```\n\nTo build and install, run:\n```bash\ncmake --build . --target INSTALL\n```\n\n### Build and install on Windows MinGW\n\nOpen a terminal that has gcc and mingw32-make in the PATH.\n\nCreate a build directory and go to it:\n```bash\nmkdir build\ncd build\n```\n\nInstall the required dependencies:\n```bash\nconan install --profile windows_gcc7_x86_64 -s build_type=Release --build=missing ..\n```\n\nConfigure the project:\n```bash\ncmake -G\"MinGW Makefiles\" -DCMAKE_INSTALL_PREFIX=C:\\some\\path -DCMAKE_BUILD_TYPE=Release ..\ncmake-gui .\n```\n\nIf `QT_PREFIX_PATH` was not specified, and no Qt5 installation is in the `PATH`,\na error will probably occur, telling that Qt was not found.\nSet the `QT_PREFIX_PATH` by choosing the path to the Qt5 installation,\nthen run \"Configure\".\n\nAlso choose different options, like the components to build.\nOnce done, run \"Generate\", then quit cmake-gui.\n\nTo build and install, run:\n```bash\ncmake --build . --target INSTALL\n```\n\n# Work on MdtPlainText\n\n## Build\n\nSee [BUILD](BUILD.md).\n\n## Create Conan package\n\nSee [README](packaging/conan/README.md) in the conan packaging folder.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscandyna%2Fmdtplaintext","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscandyna%2Fmdtplaintext","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscandyna%2Fmdtplaintext/lists"}