{"id":13799443,"url":"https://github.com/alex-spataru/QSimpleUpdater","last_synced_at":"2025-05-13T08:31:14.004Z","repository":{"id":22751859,"uuid":"26097294","full_name":"alex-spataru/QSimpleUpdater","owner":"alex-spataru","description":"Updater system for Qt applications","archived":false,"fork":false,"pushed_at":"2025-05-06T03:33:53.000Z","size":1655,"stargazers_count":991,"open_issues_count":5,"forks_count":265,"subscribers_count":56,"default_branch":"master","last_synced_at":"2025-05-06T04:29:43.712Z","etag":null,"topics":["json","library","network","qt","updater"],"latest_commit_sha":null,"homepage":"","language":"C++","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/alex-spataru.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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,"zenodo":null}},"created_at":"2014-11-03T00:06:14.000Z","updated_at":"2025-05-06T03:33:56.000Z","dependencies_parsed_at":"2024-01-05T20:50:08.040Z","dependency_job_id":"e163881c-c71c-4c71-90f8-b4333bc390b7","html_url":"https://github.com/alex-spataru/QSimpleUpdater","commit_stats":{"total_commits":109,"total_committers":14,"mean_commits":7.785714285714286,"dds":0.5688073394495412,"last_synced_commit":"7f4d8c65686d37b3040335b711eecd4bdc3001fe"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alex-spataru%2FQSimpleUpdater","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alex-spataru%2FQSimpleUpdater/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alex-spataru%2FQSimpleUpdater/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alex-spataru%2FQSimpleUpdater/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alex-spataru","download_url":"https://codeload.github.com/alex-spataru/QSimpleUpdater/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253903712,"owners_count":21981736,"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":["json","library","network","qt","updater"],"created_at":"2024-08-04T00:01:02.792Z","updated_at":"2025-05-13T08:31:13.741Z","avatar_url":"https://github.com/alex-spataru.png","language":"C++","funding_links":[],"categories":["Libraries"],"sub_categories":["New Functionality"],"readme":"# QSimpleUpdater\n\n\u003ca href=\"#\"\u003e\n    \u003cimg width=\"112px\" height=\"112px\" src=\"etc/icon.png\" align=\"right\" /\u003e\n\u003c/a\u003e\n\n[![Build Status](https://github.com/alex-spataru/QSimpleUpdater/workflows/Build/badge.svg)](#)\n\nQSimpleUpdater is an implementation of an auto-updating system to be used with Qt projects. It allows you to easily check for updates, download them and install them. Additionally, the QSimpleUpdater allows you to check for updates for different \"modules\" of your application. Check the [FAQ](#faq) for more information.\n\nOnline documentation can be found [here](http://frc-utilities.github.io/documentation/qsimpleupdater/).\n\n[![Downloading](etc/screenshots/downloading.png)](etc/screenshots/)\n\n## Integrating QSimpleUpdater with your projects\n1. Copy the QSimpleUpdater folder in your \"3rd-party\" folder.\n2. Include the QSimpleUpdater project include (*pri*) file using the include() function.\n3. That's all! Check the [tutorial project](/tutorial) as a reference for your project.\n\n## FAQ\n\n### 1. How does the QSimpleUpdater check for updates?\n\nThe QSimpleUpdater downloads an update definition file stored in JSON format. This file specifies the latest version, the download links and changelogs for each platform (you can also register your own platform easily if needed).\n\nAfter downloading this file, the library analyzes the local version and the remote version. If the remote version is greater than the local version, then the library infers that there is an update available and notifies the user.\n\nAn example update definition file can be found [here](https://github.com/alex-spataru/QSimpleUpdater/blob/master/tutorial/definitions/updates.json).\n\n### 2. Can I customize the update notifications shown to the user?\n\nYes! You can \"toggle\" which notifications to show using the library's functions or re-implement by yourself the notifications by \"reacting\" to the signals emitted by the QSimpleUpdater.\n\n```c++\nQString url = \"https://MyBadassApplication.com/updates.json\";\n\nQSimpleUpdater::getInstance()-\u003esetNotifyOnUpdate (url, true);\nQSimpleUpdater::getInstance()-\u003esetNotifyOnFinish (url, false);\n\nQSimpleUpdater::getInstance()-\u003echeckForUpdates (url);\n```\n\n### 3. Is the application able to download the updates directly?\n\nYes. If there is an update available, the library will prompt the user if he/she wants to download the update. You can enable or disable the integrated downloader with the following code:\n\n```c++\nQString url = \"https://MyBadassApplication.com/updates.json\";\nQSimpleUpdater::getInstance()-\u003esetDownloaderEnabled (url, true);\n```\n\n### 4. Why do I need to specify an URL for each function of the library?\n\nThe QSimpleUpdater allows you to use different updater instances, which can be accessed with the URL of the update definitions.\nWhile it is not obligatory to use multiple updater instances, this can be useful for applications that make use of plugins or different modules.\n\nSay that you are developing a game, in this case, you could use the following code:\n\n```c++\n// Update the game textures\nQString textures_url = \"https://MyBadassGame.com/textures.json\"\nQSimpleUpdater::getInstance()-\u003esetModuleName    (textures_url, \"textures\");\nQSimpleUpdater::getInstance()-\u003esetModuleVersion (textures_url, \"0.4\");\nQSimpleUpdater::getInstance()-\u003echeckForUpdates  (textures_url);\n\n// Update the game sounds\nQString sounds_url = \"https://MyBadassGame.com/sounds.json\"\nQSimpleUpdater::getInstance()-\u003esetModuleName    (sounds_url, \"sounds\");\nQSimpleUpdater::getInstance()-\u003esetModuleVersion (sounds_url, \"0.6\");\nQSimpleUpdater::getInstance()-\u003echeckForUpdates  (sounds_url);\n\n// Update the client (name \u0026 versions are already stored in qApp)\nQString client_url = \"https://MyBadassGame.com/client.json\"\nQSimpleUpdater::getInstance()-\u003echeckForUpdates (client_url);\n```\n\n## License\n\nQSimpleUpdater is free and open-source software, it is released under the [MIT](LICENSE.md) license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falex-spataru%2FQSimpleUpdater","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falex-spataru%2FQSimpleUpdater","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falex-spataru%2FQSimpleUpdater/lists"}