{"id":21229975,"url":"https://github.com/frklan/ysqlpp","last_synced_at":"2026-02-13T20:50:44.455Z","repository":{"id":43861697,"uuid":"429187149","full_name":"frklan/ysqlpp","owner":"frklan","description":"A C++20 header only library for Sqlite3","archived":false,"fork":false,"pushed_at":"2024-07-09T19:03:33.000Z","size":47,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-04T10:51:30.838Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"CMake","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/frklan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"code-of-conduct.md","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":"2021-11-17T20:13:24.000Z","updated_at":"2022-06-19T09:24:44.000Z","dependencies_parsed_at":"2024-11-20T23:31:07.692Z","dependency_job_id":"c2c1aaca-c3cd-452e-91e3-911b3b0e6d86","html_url":"https://github.com/frklan/ysqlpp","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/frklan/ysqlpp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frklan%2Fysqlpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frklan%2Fysqlpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frklan%2Fysqlpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frklan%2Fysqlpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/frklan","download_url":"https://codeload.github.com/frklan/ysqlpp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frklan%2Fysqlpp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29417704,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-13T06:24:03.484Z","status":"ssl_error","status_checked_at":"2026-02-13T06:23:12.830Z","response_time":78,"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":[],"created_at":"2024-11-20T23:31:01.729Z","updated_at":"2026-02-13T20:50:44.437Z","avatar_url":"https://github.com/frklan.png","language":"CMake","funding_links":[],"categories":[],"sub_categories":[],"readme":"# YSQLPP\n\nMy take at a C++20 header only wrapper for SQLlite3; to better learn and understand a bit more complex c++20 I used [msqlite](https://github.com/ricardocosme/msqlite.git) as a template/inspiration for my own driver. I must sya that I'm pretty happy with the outcome so far, although this code has a long way to go before its production ready.\n\n**Note** Beware of bugs and UB.\n\n## Dependencies\n\n### Necessary Dependencies\n\n* A C++ compiler that supports C++20.\n* [SQLite3](https://sqlite.org)\n* [Conan](https://conan.io/)\n* [CMake](https://cmake.org/)\n\n### Optional Dependencies\n\n* [Doxygen](http://doxygen.nl/)\n* [ccache](https://ccache.dev/)\n* [Cppcheck](http://cppcheck.sourceforge.net/)\n* [include-what-you-use](https://include-what-you-use.org/)\n\n## Using\n\nAPI documentation does no really exists yet, however the goal is to have a clean and simple inferface:\n\n```c++\n#include \u003cfilesystem\u003e\n#include \u003ciostream\u003e\n\n#include \u003cysqlpp/ysqlpp.h\u003e\n\nint main(int /*argc*/, const char ** /*argv*/) {\n  const std::filesystem::path db_file{\"test.db\"};\n\n  try {\n    auto db = y44::ysqlpp::open(db_file);\n\n    exec(db, \"create table if not exists MY_TABLE (NAME text, VALUE float);\");\n    exec(db, \"insert into MY_TABLE (NAME, VALUE) values ('Name1', \" + 123 + \");\");\n    exec(db, \"insert into MY_TABLE (NAME, VALUE) values ('Name2', \" + 321 + \");\");\n\n    auto stmt = y44::ysqlpp::prepare_single(db, \"select * from MY_TABLE;\");\n    y44::ysqlpp::for_each(stmt, [](const std::string \u0026name, double val) {\n      std::clog \u003c\u003c name \u003c\u003c '\\t' val \u003c\u003c '\\n';\n    });\n  } catch(std::runtime_error \u0026e) {\n    /* Handle error */\n  }\n  return 0;\n}\n```\n\nysqlpp must be added CMakeFile.txt like so\n\n```cmake\nfind_package(SQLite3)\ninclude(FetchContent)\n\nFetchContent_Declare(ysqlpp\n  GIT_REPOSITORY \"https://github.com/frklan/ysqlpp\"\n  GIT_TAG \"\"\n)\nFetchContent_MakeAvailable(ysqlpp)\n\ntarget_link_libraries(\n  ${PROJECT_NAME}\n  PRIVATE \n    ...\n    SQLite3\n    ysqlpp\n)\n```\n\nTrigger a build by issuing the following commands:\n\n```bash\n$ take build\n$ cmake .. -DENABLE_FUZZING=OFF -DENABLE_TESTING=OFF -DWARNINGS_AS_ERRORS=OFF -DENABLE_DOXYGEN=OfF  -DCMAKE_BUILD_TYPE=RelWithDebInfo  -DENABLE_CACHE=ON -DENABLE_CPPCHECK=ON -DENABLE_CLANG_TIDY=ON -DENABLE_INCLUDE_WHAT_YOU_USE=OFF\n\n$ make -j\n```\n\nUseful cmake options are:\n\n```bash\n-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \n-DCMAKE_BUILD_TYPE=DEBUG\n-DENABLE_IPO:BOOL=ON\n-DENABLE_COVERAGE:BOOL=ON \n-DENABLE_SANITIZER_ADDRESS:BOOL=ON \n-DENABLE_SANITIZER_LEAK:BOOL=ON \n-DENABLE_SANITIZER_UNDEFINED_BEHAVIOR:BOOL=ON  \n-DENABLE_SANITIZER_MEMORY:BOOL=ON\n```\n\n## Contributing\n\nContributions are always welcome!\n\nWhen contributing to this repository, please first discuss the change you wish to make via the issue tracker, email, or any other method with the owner of this repository before making a change.\n\nPlease note that we have a code of conduct, you are required to follow it in all your interactions with the project.\n\n## Versioning\n\nWe use SemVer for versioning. For the versions available, see the tags on the repository.\n\n## Authors\n\n- Fredrik Andersson - frklan\n\n\n## License\n\nThis project is licensed under the CC BY-NC-SA License - see the [LICENSE](License) file for details\n\nFor commercial/proprietary licensing, please contact the project owner\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrklan%2Fysqlpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrklan%2Fysqlpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrklan%2Fysqlpp/lists"}