{"id":32642831,"url":"https://github.com/asfernandes/fb-cpp","last_synced_at":"2026-07-01T22:32:05.806Z","repository":{"id":319729054,"uuid":"864339618","full_name":"asfernandes/fb-cpp","owner":"asfernandes","description":"A modern C++ wrapper for the Firebird database API","archived":false,"fork":false,"pushed_at":"2026-06-17T01:52:53.000Z","size":1157,"stargazers_count":18,"open_issues_count":1,"forks_count":3,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-06-17T03:24:14.464Z","etag":null,"topics":["firebird","firebirdsql"],"latest_commit_sha":null,"homepage":"https://asfernandes.github.io/fb-cpp","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/asfernandes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"github":["asfernandes"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2024-09-28T01:18:07.000Z","updated_at":"2026-06-10T00:51:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"683b7183-702a-40cd-9f77-99a2806236a4","html_url":"https://github.com/asfernandes/fb-cpp","commit_stats":null,"previous_names":["asfernandes/fb-cpp"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/asfernandes/fb-cpp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asfernandes%2Ffb-cpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asfernandes%2Ffb-cpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asfernandes%2Ffb-cpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asfernandes%2Ffb-cpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asfernandes","download_url":"https://codeload.github.com/asfernandes/fb-cpp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asfernandes%2Ffb-cpp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35025980,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-01T02:00:05.325Z","response_time":130,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["firebird","firebirdsql"],"created_at":"2025-10-31T03:03:47.445Z","updated_at":"2026-07-01T22:32:05.793Z","avatar_url":"https://github.com/asfernandes.png","language":"C++","funding_links":["https://github.com/sponsors/asfernandes","https://www.paypal.com/donate/?hosted_button_id=DLH4FB4NJL8NS"],"categories":[],"sub_categories":[],"readme":"# fb-cpp\n\n\u003cp align=\"center\"\u003e\u003cimg class=\"readme-logo\" src=\"fb-cpp-logo.png\" alt=\"\" width=\"25%\" /\u003e\u003c/p\u003e\n\nA modern C++ wrapper for the Firebird database API.\n\n[Documentation](https://asfernandes.github.io/fb-cpp) | [Repository](https://github.com/asfernandes/fb-cpp) |\n[DeepWiki](https://deepwiki.com/asfernandes/fb-cpp)\n\n## Overview\n\n`fb-cpp` provides a clean, modern C++ interface to the Firebird database engine.\nIt wraps the Firebird C++ API with RAII principles, smart pointers, and modern C++ features.\n\n## Features\n\n- **Modern C++**: Uses C++20 features for type safety and performance\n- **RAII**: Automatic resource management with smart pointers\n- **Type Safety**: Strong typing for database operations\n- **Exception Safety**: Proper error handling with exceptions\n- **Boost Integration**: Optional Boost.DLL for loading fbclient and Boost.Multiprecision support for large numbers\n\n## Quick Start\n\n```cpp\n#include \"fb-cpp/fb-cpp.h\"\n\nusing namespace fbcpp;\n\n// Create a client\nClient client{\"fbclient\"};\n\n// Connect to a database\nconst auto attachmentOptions = AttachmentOptions()\n    .setConnectionCharSet(\"UTF8\");\nAttachment attachment{client, \"localhost:database.fdb\", attachmentOptions};\n\n// Start a transaction\nconst auto transactionOptions = TransactionOptions()\n    .setIsolationLevel(TransactionIsolationLevel::READ_COMMITTED);\nTransaction transaction{attachment, transactionOptions};\n\n// Prepare a statement\nStatement statement{attachment, transaction, \"select id, name from users where id = ?\"};\n\n// Set parameters\nstatement.setInt32(0, 42);\n/*\n// Or:\nstatement.set(0, 42);\n\n// Or:\nstatement.set(SomeStructOrTuple{42});\n*/\n\n// Execute and get results\nif (statement.execute(transaction))\n{\n    // Process results...\n    do\n    {\n        const std::optional\u003cstd::int32_t\u003e id = statement.getInt32(0);\n        const std::optional\u003cstd::string\u003e name = statement.getString(1);\n\n        /*\n        // Or:\n        const auto id = statement.get\u003cstd::int32_t\u003e(0);\n        const auto name = statement.get\u003cstd::string\u003e(1);\n\n        // Or:\n        const auto [id, name] = statement.get\u003cSomeStructOrTuple\u003e();\n        */\n    } while (statement.fetchNext());\n}\n\n// Commit transaction\ntransaction.commit();\n```\n\n## Using with vcpkg\n\nThis library is present in [firebird-vcpkg-registry](https://github.com/asfernandes/firebird-vcpkg-registry).\n\nTo install, add the registry or overlay to your vcpkg configuration and install the `fb-cpp` package:\n```bash\nvcpkg install fb-cpp\n```\n\nOr add it to your `vcpkg.json` manifest:\n```json\n{\n  ...\n  \"dependencies\": [\n    {\n      \"name\": \"fb-cpp\",\n      \"default-features\": true\n    }\n  ]\n}\n```\n\nThe default features are:\n- `boost-dll`: Enable Boost.DLL support for runtime dynamic loading of Firebird client library\n- `boost-multiprecision`: Enable Boost.Multiprecision support for INT128 and DECFLOAT types\n\n## Building\n\nThis project uses CMake presets (`CMakePresets.json`) and vcpkg for dependency management.\n\nCopy the appropriate `CMakeUserPresets.json.\u003cplatform\u003e.template` file to `CMakeUserPresets.json` to set environment\nvariables for tests and define the default preset. On Windows, use either `CMakeUserPresets.json.windows-vs2022.template`\nor `CMakeUserPresets.json.windows-vs2026.template`.\n\n```bash\n# Configure\ncmake --preset default\n\n# Build\ncmake --build --preset default\n\n# Run tests\nctest --preset default\n\n# Build docs\ncmake --build --preset default --target docs\n```\n\n## Documentation\n\nThe complete API documentation is available in the build `doc/docs/` directory after building with the `docs` target.\n\n## License\n\nMIT License - see LICENSE.md for details.\n\n# Donation\n\nIf this project help you reduce time to develop, you can show your appreciation with a donation.\n\n- GitHub Sponsor: https://github.com/sponsors/asfernandes\n- Pix (Brazil): 278dd4e5-8226-494d-93a9-f3fb8a027a99\n- BTC: 1Q1W3tLD1xbk81kTeFqobiyrEXcKN1GfHG\n- [![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/donate/?hosted_button_id=DLH4FB4NJL8NS)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasfernandes%2Ffb-cpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasfernandes%2Ffb-cpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasfernandes%2Ffb-cpp/lists"}