{"id":24876028,"url":"https://github.com/jomart02/lazuli","last_synced_at":"2025-10-23T17:39:55.756Z","repository":{"id":273769080,"uuid":"920785466","full_name":"Jomart02/Lazuli","owner":"Jomart02","description":"Qt NMEA navigation data simulator program supporting plugin system","archived":false,"fork":false,"pushed_at":"2025-05-22T14:18:23.000Z","size":1524,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-03T02:04:32.349Z","etag":null,"topics":["cpp","linux","nmea","nmea0183","qss","qt","simulator","ubuntu","windows"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jomart02.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2025-01-22T19:10:41.000Z","updated_at":"2025-05-22T11:53:26.000Z","dependencies_parsed_at":"2025-01-22T21:28:46.494Z","dependency_job_id":"cff7adc6-706d-4e6e-9428-6ff13e781a0f","html_url":"https://github.com/Jomart02/Lazuli","commit_stats":null,"previous_names":["jomart02/lazuli"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Jomart02/Lazuli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jomart02%2FLazuli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jomart02%2FLazuli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jomart02%2FLazuli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jomart02%2FLazuli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jomart02","download_url":"https://codeload.github.com/Jomart02/Lazuli/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jomart02%2FLazuli/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263245301,"owners_count":23436512,"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":["cpp","linux","nmea","nmea0183","qss","qt","simulator","ubuntu","windows"],"created_at":"2025-02-01T08:19:16.683Z","updated_at":"2025-10-23T17:39:55.668Z","avatar_url":"https://github.com/Jomart02.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"icon\" src=\"https://raw.githubusercontent.com/Jomart02/Lazuli/9f9eb075cd97fd3005f9697a0e55fc5dc5faa373/gitRes/icon.svg\" width=\"512\" height=\"512\"\u003e\n  \u003c/strong\u003e\n\u003c/p\u003e\n\n\u003c!-- Языки --\u003e\n\u003cp align=\"center\"\u003e\n  \u003cstrong style=\"font-size: 24px;\"\u003eLanguage:\u003c/strong\u003e\u003cbr\u003e\n  \u003ca href=\"https://github.com/Jomart02/Lazuli/blob/master/README.md\" style=\"font-size: 20px; text-decoration: none; margin: 0 5px;\"\u003e🇬🇧\u003c/a\u003e • \n  \u003ca href=\"https://github.com/Jomart02/Lazuli/blob/master/gitRes/README_ru.md\" style=\"font-size: 20px; text-decoration: none; margin: 0 5px;\"\u003e🇷🇺\u003c/a\u003e\n\u003c/p\u003e\n\n\n\u003c!-- Навигационное меню --\u003e\n\u003cp align=\"center\" style=\"font-size: 20px;\"\u003e\n  \u003cstrong style=\"font-size: 24px;\"\u003eTable of Contents:\u003c/strong\u003e\u003cbr\u003e\n  \u003ca href=\"#description\"\u003eDescription\u003c/a\u003e • \n  \u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e • \n  \u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e • \n  \u003ca href=\"#links\"\u003eLinks\u003c/a\u003e • \n  \u003ca href=\"#contributors\"\u003eСontributors\u003c/a\u003e\u003cbr\u003e\n  \u003ca href=\"https://github.com/users/Jomart02/projects/1\"\"\u003e\n    Roadmap\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\n## Description\n\nLazuli is versatile NMEA message simulator designed to generate NMEA sentences for testing, development, and educational purposes. It transmits data over UDP, with plans to support serial (COM) port communication in the future. Lazuli stands out with its plugin-based architecture, enabling users to extend its functionality and add custom simulators or new NMEA message types effortlessly.\n\n## Features\n\n### Plugin System for Extensibility:\nLazuli incorporates a robust plugin system, empowering users to expand its capabilities by developing custom plugins. These plugins can introduce new NMEA sentence generators, simulate specific scenarios, or integrate third-party tools, ensuring the application remains flexible and adaptable to evolving needs.\n\n[The base plugin class](https://github.com/Jomart02/BaseNaviWidget/tree/11d4991ce9b7591ce461af3f34f1f4f94c38ff8c) provides the ability to describe the plugin and sends all messages on its own\nIt is necessary to override one method to implement the generation of NMEA\nmessages\n\nThe program creates a Plugins folder (Lazuli/Plugins) in the user's home directory\nPlugins (inheritors of the base class) must be placed in this directory\n\n### Customizable Simulations:\nUsers can configure simulation profiles to replicate real-world conditions, such as vessel movement, weather data, sensor readings, and more. This customization capability allows developers and testers to validate their systems under diverse and controlled environments.\n\n![page](./gitRes/lazuli.png)\n\n### Styling Customization with QSS:\nLazuli supports Qt Style Sheets (QSS) and [StyleManager](https://github.com/Jomart02/QssStyleManager/tree/5899cc2385e98501828e1226899dd6fa04698501), enabling users to fully customize the application's visual appearance use custom settings. \n\nThe program creates a Styles folder (Lazuli/Styles) in the user's home directory\nYou can place json settings for the style in this directory (they must match the Lazuli style format)\n\n### Map coordinates\nThe program allows you to take coordinates from the map\n\nWhen you click on the map, the latitude and longitude are passed to the virtual method of the base class\n\n![map](./gitRes/map.gif)\n---\n\nDeveloped using C++ and Qt 6.5.3's QtWidgets module, Lazuli ensures high performance and cross-platform compatibility.\n\n## Installation \n\nClone this repo and update submodules\n\n```shell\ngit submodule update --init --recursive\n```\n```shell\nmkdir build\ncd build \u0026\u0026 cmake ..\ncmake --build . -j 8 --config Release \n```\n\n## Links\n- [Plugins](https://github.com/Jomart02/NavySimulators)\n- [StyleManager](https://github.com/Jomart02/QssStyleManager/tree/5899cc2385e98501828e1226899dd6fa04698501)\n- [The base plugin class](https://github.com/Jomart02/BaseNaviWidget/tree/11d4991ce9b7591ce461af3f34f1f4f94c38ff8c)\n- [using NMEA message](https://gpsd.gitlab.io/gpsd/NMEA.html)\n- [AIS](https://gpsd.gitlab.io/gpsd/AIVDM.html)\n## Сontributors\n\n- с++, python middle developer [pandazz77](https://github.com/pandazz77)\n- c++, mobile app developer , designer [Tatarin](https://github.com/Tatarin61866) ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjomart02%2Flazuli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjomart02%2Flazuli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjomart02%2Flazuli/lists"}