{"id":20089954,"url":"https://github.com/bugadani/cglue","last_synced_at":"2026-03-04T21:01:45.019Z","repository":{"id":77144857,"uuid":"263130229","full_name":"bugadani/CGlue","owner":"bugadani","description":"Embedded firmware toolkit to generate and connect software components","archived":false,"fork":false,"pushed_at":"2020-03-20T21:18:07.000Z","size":470,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-02T15:28:35.427Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"RevolutionRobotics/CGlue","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bugadani.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2020-05-11T18:54:07.000Z","updated_at":"2020-05-11T18:54:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"5e87f20e-ad80-4400-9f32-318f1d844b4f","html_url":"https://github.com/bugadani/CGlue","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/bugadani/CGlue","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bugadani%2FCGlue","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bugadani%2FCGlue/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bugadani%2FCGlue/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bugadani%2FCGlue/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bugadani","download_url":"https://codeload.github.com/bugadani/CGlue/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bugadani%2FCGlue/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30092867,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T20:42:30.420Z","status":"ssl_error","status_checked_at":"2026-03-04T20:42:30.057Z","response_time":59,"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-13T16:21:01.202Z","updated_at":"2026-03-04T21:01:44.985Z","avatar_url":"https://github.com/bugadani.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"CGlue ![Python package](https://github.com/RevolutionRobotics/CGlue/workflows/Python%20package/badge.svg) [![codecov](https://codecov.io/gh/RevolutionRobotics/CGlue/branch/master/graph/badge.svg)](https://codecov.io/gh/RevolutionRobotics/CGlue)\n=====\n\n__CGlue is in its early stages of development. It is not recommended for use in\nproduction software and every part can change significantly.__\n\nCGlue is a software framework for project written in C. It defines a component-based\narchitecture and provides tools to support this architecture.\n\nA CGlue project has two main layers:\n - a component layer where you define the boundaries (ports, public types) of your software\n   components\n - and a runtime layer where you define connections between your components\n\nCGlue is capable of generating the skeleton structure of software components\nand the implementation of the runtime layer.\n\nCGlue requires python 3.x (TODO check minimum python version) and chevron.\n\nGot any issues or suggestions? Head on to the issues page and open a ticket!\n\nRunning tests\n=============\n\nTo set up the required packages, run the following:\n\n```\npip install -r requirements.txt\npip install -r requirements_tests.txt\n```\n\nUse `python setup.py test` to run the tests.\n\nCreate a new project\n=============\n\n`cglue --new-project ProjectName [--project=project_file.json] [--cleanup]`\n\nThis command will create a new CGlue project file and the default directories.\nThere is no makefile added to the project - you'll need to write your own\nor use a script to generate based on the CGlue project file.\n\nCreate a new software component\n=============\n\n`cglue --new-component ComponentName [--cleanup]`\n\nThis will create a new folder in the `SwComponents` folder (by default), create an empty source and \nheader file as well as a component configuration json.\n\nUpdating a software component\n=============\n\nAfter you edit a component configuration json, you may call the following command to re-generate\nthe header and source files:\n\n`cglue --update-component ComponentName [--cleanup]`\n\nAlternatively, if you want to update all components, call `cglue --update-all-components [--cleanup]`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbugadani%2Fcglue","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbugadani%2Fcglue","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbugadani%2Fcglue/lists"}