{"id":19702036,"url":"https://github.com/jnguyen1098/cdot","last_synced_at":"2026-06-12T19:32:30.027Z","repository":{"id":82046868,"uuid":"352136273","full_name":"jnguyen1098/cdot","owner":"jnguyen1098","description":"Simple header-only C/C++ API for generating Graphviz DOT graphs","archived":false,"fork":false,"pushed_at":"2021-03-31T21:25:28.000Z","size":13,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-27T16:17:01.962Z","etag":null,"topics":["c","graphviz","graphviz-dot","header-only","headers"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jnguyen1098.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":"2021-03-27T17:35:56.000Z","updated_at":"2024-10-02T18:05:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"2c51381a-9fe5-4b0e-98c3-dc1d503acb14","html_url":"https://github.com/jnguyen1098/cdot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jnguyen1098/cdot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jnguyen1098%2Fcdot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jnguyen1098%2Fcdot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jnguyen1098%2Fcdot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jnguyen1098%2Fcdot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jnguyen1098","download_url":"https://codeload.github.com/jnguyen1098/cdot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jnguyen1098%2Fcdot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34260309,"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-06-12T02:00:06.859Z","response_time":109,"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":["c","graphviz","graphviz-dot","header-only","headers"],"created_at":"2024-11-11T21:13:09.084Z","updated_at":"2026-06-12T19:32:29.930Z","avatar_url":"https://github.com/jnguyen1098.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"```\n───────────────────────────────────────────────────────────────────────────────────────────────\n─██████████████─────────────████████████───────────────██████████████───────────██████████████─\n─██░░░░░░░░░░██─────────────██░░░░░░░░████─────────────██░░░░░░░░░░██───────────██░░░░░░░░░░██─\n─██░░██████████─────────────██░░████░░░░██─────────────██░░██████░░██───────────██████░░██████─\n─██░░██─────────────────────██░░██──██░░██─────────────██░░██──██░░██───────────────██░░██─────\n─██░░██─────────────────────██░░██──██░░██─────────────██░░██──██░░██───────────────██░░██─────\n─██░░██─────────────────────██░░██──██░░██─────────────██░░██──██░░██───────────────██░░██─────\n─██░░██─────────────────────██░░██──██░░██─────────────██░░██──██░░██───────────────██░░██─────\n─██░░██─────────────────────██░░██──██░░██─────────────██░░██──██░░██───────────────██░░██─────\n─██░░██████████─────────────██░░████░░░░██─────────────██░░██████░░██───────────────██░░██─────\n─██░░░░░░░░░░██─────────────██░░░░░░░░████─────────────██░░░░░░░░░░██───────────────██░░██─────\n─██████████████─────────────████████████───────────────██████████████───────────────██████─────\n───────────────────────────────────────────────────────────────────────────────────────────────\n                                            ▄B▒Ä░WW#╗▄\n                                           (█#▄│││││││▀▄\n                                           ▐▌╡▐█▒#▓╪▓▒▒▌\n                                            ▌║║▒▒▒▒▒▒▒█\n                                            █▒╢▒▒▒▒▒▒║.\n                                         .▄▄█▒▒▒▒▒▒▒║b\n                                  ▄æ▓▒▒▀Ñ╡║▒║▒▒▒▒▒▒║█▓▄▄\n                             ▄▄#▒█╡║║║▒▒▒▒▒▒▒▒▒▒▒▒▒▒███▒█▓▓▄\n                          #▓█╚╠╠║╡▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██████▒█▓▄\n                       ▄▓▀▒╠│#╢▒▒▒▒▒Ñ▀▀▓▓▒▒▒╡▒▒▒▒▒▒▒▒▒█████▒████▓▄\n                     ▄▓█▒▒▒║▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒║Ñ▀▀▒▀▀▀▓▀▀███████████▒▓▄\n                   ╪█╡▒╠█╡▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓██████████▒▓\n              ▄æ#▒█║▒▒▒▒▒╠▀█▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓█████████████⌐\n            ▄█╡▒▒█▒▒▒▒▒▒▒▒▒▒╠▀▀▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓████████████▒█▄\n           ▐▀▒▒▒▒╠█▒▒▒▒▒▒▒▒▒▒▒▒▒▒╡▀▀▀▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓██████████▒▒██▒█\n           ╫▒▒╠╠║▒▒╠▀▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒║╠▀▀▀▀▀▀▓▓▓▓▓▓▓█▓▓▓▓█████▒▓███▓█\n            █▒▒░│║▒▒▒║▀▀▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓████████████████████▒█▓å\n             █▒▓▓▒║║▒▒▒▒▒╠▀▀▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓███████████████████████▓████▌\n             ▌║█▒█▓▓▒▒▒▒▒▒▒▒▒▒║██▓▓▒▒▒▒▒▒▒▓▓▓████████████████████████▒▒███████▄\n            ▐╠█████▒██▓▓▒▒▒▒▒▒▒▓▒▒▓█▒█▒█▓▓▒▒▒▒▓████████████▒▒▒▒▒█▓███▒████████▌\n            ╫|███▌║║███▒██████▓▓▒█████████████▒▒████▒█████▒▒██████████████████╜\n            ▌|███▌║████▀▀██▒███████████████████████████████████████████████▒▀τ\n            ▌|████████▀║║║║Ñ▀▀▀█▒▒█████████████████████████████████████▒▒▀▀τ\n            █|███████▀|╙╙╚╠╠║║║║██████▀██▒▒▒███████████████████▒▒▒▒██████\n            ╪||▀███▀Ü||||||||╙╙╚╫████▌║║║║┤ÑÑ▀██████▀▀▀▀▀█▒▒▒█║▒▒▓▓▓▓▓▒▒▌\n            ▐▄|∩  ||||||╓█ |||||║█████╙╙╚╚╚╠╠██████▀║║║║▐█▓▓▓▓▓▓▒▒▒▒▒▓▒║=\n             ▀▄|  ||||╓▓█║▌|||||.██████B,|¡▄██████▀╙╙╙╙╙█▒▒▒▒▒▒▒▒▒▒▒▒▒▒▌\n              █▒▓╪╪#▓█▀▒▒▒█B|||||└███████████████Ñ|||||█║▒▒▒▒▒▒▒▒▒▒▒▒▒█.\n              ╙▌║│╠║║║▒▒▒▒▒█B||||||╙▀█████████▀▀||||| █║▒▒▒▒▒▒▒▒▒▒▒▒▒║▀\n               ╙╡║│║║▒▒▒▒▒▒▒█▓ ||||||| ╙╙▀╙┴ |||||||#█║▒▒▒▒▒▒▒▒▒▒▒▒▒║▀\n                ╙█╢╡║▒▒▒▒▒▒▒▒▒█▓▄|||||||||||||||||#▓║▒▒▒▒▒▒▒▒▒▒▒▒▒▒█Ö\n                  ▀▒▒▒▒▒▒▒▒▒▒▒▒▒║█▓#▄|||||||||▄╪▓▒▒▒▒▒▒║▒╝▀▀▀▀╙▀▀█▀\n                   ╙█║▒▒▒▒▒▒▒▒▒▒▒▒▒▒║█▒▒▒▓▒▒▒║▒▒▒▒▒║▒▀╙`  |│||||||╙k\n                    ▄▀█▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▀Ñ|||||{||||||||||█\n                  ▄▀∩||╙▀█▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒║█▌||||||##░░░░░#|||| ▌\n                  ▌   │|||┴▀▀▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒║█▐▌||(#╠║║║║║║║║║║M|||▌\n                 ▐▌∩|{||||##╠║Ñ██▓▒▒▒▒▒▒▒▒▒▒▒▓█||╙Φ│║║║║║║║║║║║║║╡∩|║=\n                  ▀#░M#░╠║║║║║║║██▀ ▀█▒▒▒▒▒▒║█▌||#╠▀▓▒║║║║║║║║║║║╡|║▀\n                   └╙╫▒▒┼#▒▒▒╝▀╙.     ╙▀▒▒▒█▀ █|││║║║╡▀▀╪╪▒▒▒▒▒▄▒╫▀\n                                               ▀▄╚║║║║║║║║║║║║╠▒▀\n                                                 ╙╜╝▒▒▒▒▒╫╝▀╙╙\n```\n\n# cdot (WORK IN PROGRESS)\n\nSimple header-only C API for generating Graphviz DOT graphs.\n\n```c\n#include \"cdot.h\"\n\nvoid cdot_stdout_example(void)\n{\n    INIT_CDOT(stdout);\n\n    ADD_EDGE(\"hello\", \"world\");\n    ADD_EDGE(\"world\", \"foo\");\n\n    DESTROY_CDOT();\n}\n\nvoid cdot_file_example(void)\n{\n    FILE *fp;\n    if ((fp = fopen(\"example.gv\", \"w\"))) {\n        INIT_CDOT(fp);\n\n        const char *line = \"123456789\";\n        char first[2] = \"\";\n        char last[2] = \"\";\n\n        // Creates a long centipede graph\n        for (int i = 0; line[i + 1]; i++) {\n            first[0] = line[i];\n            last[0] = line[i + 1];\n            ADD_EDGE(first, last);\n        }\n\n        DESTROY_CDOT();\n    } else fprintf(stderr, \"???\\n\");\n}\n\nint main(void)\n{\n    cdot_stdout_example();\n    cdot_file_example();\n    return 0;\n}\n\n```\n\n## Attribution\n\nASCII art of Seedot from https://asciiart.club/\n\nASCII art of the cdot banner from https://fsymbols.com/generators/carty/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjnguyen1098%2Fcdot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjnguyen1098%2Fcdot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjnguyen1098%2Fcdot/lists"}