{"id":48724158,"url":"https://github.com/legerch/qbarcode","last_synced_at":"2026-04-11T21:02:32.757Z","repository":{"id":324685712,"uuid":"1084381127","full_name":"legerch/QBarcode","owner":"legerch","description":"QBarcode is a Qt library allowing to generate barcodes","archived":false,"fork":false,"pushed_at":"2025-11-17T10:32:05.000Z","size":498,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-17T11:15:25.642Z","etag":null,"topics":["barcode","cpp","qrcode","qt"],"latest_commit_sha":null,"homepage":"https://legerch.github.io/QBarcode/","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/legerch.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-27T15:51:29.000Z","updated_at":"2025-11-17T10:31:42.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/legerch/QBarcode","commit_stats":null,"previous_names":["legerch/qbarcode"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/legerch/QBarcode","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/legerch%2FQBarcode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/legerch%2FQBarcode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/legerch%2FQBarcode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/legerch%2FQBarcode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/legerch","download_url":"https://codeload.github.com/legerch/QBarcode/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/legerch%2FQBarcode/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31695165,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T20:18:30.949Z","status":"ssl_error","status_checked_at":"2026-04-11T20:18:29.982Z","response_time":54,"last_error":"SSL_read: 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":["barcode","cpp","qrcode","qt"],"created_at":"2026-04-11T21:02:31.826Z","updated_at":"2026-04-11T21:02:32.747Z","avatar_url":"https://github.com/legerch.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"[QBarcode][repo-home] is a Qt library allowing to generate barcodes.\n\n\u003e [!TIP]\n\u003e Latest development/pull requests will be committed into `main` branch.  \n\u003e Each stable release have their dedicated branch:\n\u003e - `1.0.x`: branch `dev/1.0`\n\u003e - `1.1.x`: branch `dev/1.1`\n\u003e - etc...\n\n**Table of contents :**\n- [1. Library details](#1-library-details)\n  - [1.1. Features](#11-features)\n- [2. Requirements](#2-requirements)\n  - [2.1. C++ Standards](#21-c-standards)\n  - [2.2. Dependencies](#22-dependencies)\n- [3. How to build](#3-how-to-build)\n  - [3.1. CMake Usage](#31-cmake-usage)\n  - [3.2. CMake options](#32-cmake-options)\n- [4. How to use](#4-how-to-use)\n  - [4.1. Usage](#41-usage)\n  - [4.2. Library version](#42-library-version)\n    - [4.2.1. Compatibility](#421-compatibility)\n    - [4.2.2. Compilation time](#422-compilation-time)\n    - [4.2.3. Runtime](#423-runtime)\n- [5. Documentation](#5-documentation)\n- [6. License](#6-license)\n\n# 1. Library details\n## 1.1. Features\n\nThis cross platform library allow to generate multiple types of barcodes and render those in different format.  \nWe have three \"main\" classes:\n- `qbar::Payload`: This class store only **datas** to use, representing _what we have to encode_.\n- `qbar::Barcode`: This is the base class of all barcodes types, responsible of building the barcode matrix. It don't manage encoding and don't manage appearance.\n- `qbar::Renderer`: This class allow to render barcodes (size, margins, colors, etc...) and only responsible of _how does it look ?_\n\n\u003e [!NOTE]\n\u003e Custom application [QBarcodeApp][qbarcodeapp-repo] is available and used as a demo application to discover how this library can be used.\n\nWhat types of barcodes are currently supported:\n\n| Type of barcode | Barcode class | Rendering class | Supported payloads |\n|:-:|:-:|:-:|:-:|\n| [QrCode][qrcode-doc] | `qbar::QrCode` | `qbar::RendererQrCode` | - String\u003cbr\u003e- URL\u003cbr\u003e- Wifi |\n\n\u003e [!NOTE]\n\u003e 🕚 Currently planned: 🕚\n\u003e - More QrCode payload: geo, phone contact, etc...\n\u003e - More barcodes types: EAN-13\n\n# 2. Requirements\n## 2.1. C++ Standards\n\nThis library requires at least **C++ 17** standard\n\n## 2.2. Dependencies\n\nBelow, list of required dependencies:\n\n| Dependencies | VCPKG package | Comments |\n|:-:|:-:|:-:|\n| [Qt][qt-official] | / | Compatible with **Qt6.x**\u003cbr\u003eCompatible with **Qt5.15.x** |\n| [Google Test][gtest-repo] | `gtest` | Only needed to run unit-tests |\n| [libqrencode][lib-qrencode-repo] | `libqrencode` | / |\n\n\u003e [!NOTE]\n\u003e Dependency manager [VCPKG][vcpkg-tutorial] is not mandatory, this is only a note to be able to list needed packages\n\n# 3. How to build\n## 3.1. CMake Usage\n\nThis library can be use as an _embedded library_ in a subdirectory of your project (like a _git submodule_ for example) :\n1. In the **root** CMakeLists, add instructions :\n```cmake\nadd_subdirectory(qbarcode) # Or if library is put in a folder \"dependencies\" : add_subdirectory(dependencies/qbarcode)\n```\n\n2. In the **application/library** CMakeLists, add instructions :\n```cmake\n# Link needed libraries\ntarget_link_libraries(${PROJECT_NAME} PRIVATE qbarcode)\n```\n\n## 3.2. CMake options\n\nThis library provide some **CMake** build options:\n- `QBAR_BUILD_TESTS` (default: `ON`): Use to enable/disable unit-tests build\n\n# 4. How to use\n## 4.1. Usage\n\nPlease refer to the [list of classes][dox-class-list] documentation for more details.\n\n## 4.2. Library version\n### 4.2.1. Compatibility\n\nThis library use the [PImpl Idiom][pimpl-doc-cpp] in order to preserve _ABI compatibility_ (_Qt wiki_ also have a [great tutorial on the PImpl idiom][pimpl-doc-qt]).  \nSo only **major** release (this project use the [semantic versioning][semver-home]) _should_ break the ABI.\n\n### 4.2.2. Compilation time\n\nIn order to easily check at compilation time library version (to manage compatibility between multiple versions for example), macro `QBAR_VERSION_ENCODE` (defined inside _library_global.h_ file) can be used:\n```cpp\n#if QBAR_VERSION \u003e= QBAR_VERSION_ENCODE(2,0,0)\n    // Do stuff for version 2.0.0 or higher\n#else\n    // Do stuff for earlier versions\n#endif\n```\n\n### 4.2.3. Runtime\n\nSince library header used during final application build could differ from the actual library version, it is recommended to use the method:\n```cpp\n#include \"qbarcode/qbartypes.h\"\n\nconst QVersionNumber libSemver = qbar::getLibraryVersion();\n```\n\n# 5. Documentation\n\nAll classes/methods has been documented with [Doxygen][doxygen-official] utility and automatically generated at [online website documentation][repo-doc-web].\n\n\u003e [!NOTE]\n\u003e This repository contains two kinds of documentation:\n\u003e - **Public API:** Available via [online website documentation][repo-doc-web] or locally via Doxyfile `docs/fragments/Doxyfile-public-api.in`\n\u003e - **Internal:** Available locally only via `docs/fragments/Doxyfile-internal.in`\n\nTo generate documentation locally, we can use:\n```shell\ndoxygen ./docs/fragments/Doxyfile-name\n```\n\u003e [!TIP]\n\u003e You can also load the _Doxyfile_ into _Doxywizard_ (Doxygen GUI) and run generation.\n\n# 6. License\n\nThis library is licensed under [MIT license][repo-license-url].\n\n\u003c!-- Anchor of this page --\u003e\n[anchor-platforms]: #12-supported-platforms\n[anchor-cmake-opts]: #32-cmake-options\n\n\u003c!-- Doxygen links --\u003e\n[dox-class-list]: annotated.html\n\n\u003c!-- Links of this repository --\u003e\n[repo-home]: https://github.com/legerch/QBarcode\n[repo-doc-web]: https://legerch.github.io/QBarcode/\n[repo-license]: LICENSE.md\n[repo-license-url]: https://github.com/legerch/QBarcode/LICENSE.md\n\n\u003c!-- External links --\u003e\n[doxygen-official]: https://www.doxygen.nl/index.html\n\n[gtest-repo]: https://github.com/google/googletest\n[lib-qrencode-repo]: https://github.com/fukuchi/libqrencode\n[qbarcodeapp-repo]: https://github.com/legerch/QBarcodeApp\n[qrcode-doc]: https://en.wikipedia.org/wiki/QR_code\n[qt-official]: https://www.qt.io/\n\n[vcpkg-tutorial]: https://github.com/legerch/develop-memo/tree/master/Toolchains/Build%20systems/VCPKG\n\n[semver-home]: https://semver.org\n[pimpl-doc-cpp]: https://en.cppreference.com/w/cpp/language/pimpl\n[pimpl-doc-qt]: https://wiki.qt.io/D-Pointer","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flegerch%2Fqbarcode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flegerch%2Fqbarcode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flegerch%2Fqbarcode/lists"}