{"id":14235523,"url":"https://github.com/pykello/racket-graphviz","last_synced_at":"2026-01-22T11:33:01.115Z","repository":{"id":46960570,"uuid":"197984248","full_name":"pykello/racket-graphviz","owner":"pykello","description":"Library to enable using graphviz in Racket programs","archived":false,"fork":false,"pushed_at":"2021-10-21T02:34:35.000Z","size":470,"stargazers_count":25,"open_issues_count":4,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-01-13T02:45:04.082Z","etag":null,"topics":["graph","racket","visualization"],"latest_commit_sha":null,"homepage":"","language":"Racket","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pykello.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}},"created_at":"2019-07-20T21:50:27.000Z","updated_at":"2023-08-28T16:37:15.000Z","dependencies_parsed_at":"2022-09-16T16:20:28.786Z","dependency_job_id":null,"html_url":"https://github.com/pykello/racket-graphviz","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pykello/racket-graphviz","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pykello%2Fracket-graphviz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pykello%2Fracket-graphviz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pykello%2Fracket-graphviz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pykello%2Fracket-graphviz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pykello","download_url":"https://codeload.github.com/pykello/racket-graphviz/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pykello%2Fracket-graphviz/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28662119,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"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":["graph","racket","visualization"],"created_at":"2024-08-20T21:02:02.222Z","updated_at":"2026-01-22T11:33:01.097Z","avatar_url":"https://github.com/pykello.png","language":"Racket","funding_links":[],"categories":["Racket"],"sub_categories":[],"readme":"# Racket GraphViz Integration\n\nThe goal of this library is to make composition of Racket [Pict](https://docs.racket-lang.org/pict/)\nand [Graphviz Diagrams](https://www.graphviz.org/) possible.\n\nThe composition is made possible through:\n* You can use graphviz diagrams as normal picts\n* You can use any Pict as node shape of graphviz diagrams\n\nFor example, in the following program note that the shapes for nodes \"c\" and \"f\" and also the node with fish shape\nare racket shapes. Rest of the nodes use a shape provided by graphviz.\n\n\n```racket\n(digraph-\u003epict\n (make-digraph\n  `([\"a\" #:shape \"diamond\" #:fillcolor \"lightgray\" #:style \"filled\"]\n    [\"b\" #:shape ,(cloud 60 30) #:label \"c\"]\n    [\"c\" #:shape ,(standard-fish 100 50 #:open-mouth #t #:color \"Chartreuse\")\n         #:label \"\"]\n    \"d\"\n    \"a -\u003e b -\u003e c\"\n    \"a -\u003e d -\u003e c\"\n    (subgraph \"stdout\" #:style \"filled\" #:fillcolor \"cyan\"\n              ([\"f\" #:shape ,(file-icon 50 60 \"bisque\")]\n               \"g\"\n               \"f -\u003e g\"))\n    \"d -\u003e g\")))\n```\n\n![](images/custom-shapes.svg)\n\nAs another example, take a look at [dirtree.rkt](examples/dirtree.rkt) which dynamically generates a directory tree.\n\n![](images/dirtree.svg)\n\nNotice how dirtree.rkt has used `make-vertex` and `make-edge` functions:\n\n```racket\n...\n(define root (make-vertex (path-\u003estring name) #:shape shape))\n...\n(make-edge root-node sub-node)\n...\n```\n\nYou can pass a list of vertex and edges to `make-digraph` to create a digraph, and use `digraph-\u003epict`\nto convert it to a pict.\n\n```racket\n(define d (make-digraph (list v1 v2 (make-edge v1 v2))))\n(digraph-\u003epict d)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpykello%2Fracket-graphviz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpykello%2Fracket-graphviz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpykello%2Fracket-graphviz/lists"}