{"id":26093069,"url":"https://github.com/flow-storm/flow-storm-async-flow-plugin","last_synced_at":"2025-09-07T04:34:18.953Z","repository":{"id":277405481,"uuid":"932174034","full_name":"flow-storm/flow-storm-async-flow-plugin","owner":"flow-storm","description":"A FlowStorm plugin to debug core.async.flow graphs","archived":false,"fork":false,"pushed_at":"2025-03-04T18:15:00.000Z","size":465,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-04T19:24:26.733Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Clojure","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/flow-storm.png","metadata":{"files":{"readme":"Readme.md","changelog":"CHANGELOG.md","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}},"created_at":"2025-02-13T13:46:42.000Z","updated_at":"2025-03-04T18:14:51.000Z","dependencies_parsed_at":"2025-03-04T19:22:12.014Z","dependency_job_id":"53e06efa-3738-4c51-b75d-975421b5cc25","html_url":"https://github.com/flow-storm/flow-storm-async-flow-plugin","commit_stats":null,"previous_names":["flow-storm/flow-storm-async-flow-plugin"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flow-storm%2Fflow-storm-async-flow-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flow-storm%2Fflow-storm-async-flow-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flow-storm%2Fflow-storm-async-flow-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flow-storm%2Fflow-storm-async-flow-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flow-storm","download_url":"https://codeload.github.com/flow-storm/flow-storm-async-flow-plugin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242681663,"owners_count":20168557,"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":[],"created_at":"2025-03-09T11:22:15.301Z","updated_at":"2025-09-07T04:34:18.939Z","avatar_url":"https://github.com/flow-storm.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FlowStorm core.async.flow plugin\n\n![demo](./images/plugin_demo.png)\n\nThe core.async.flow plugin allows you to visualize your core.async.flow graph recorded activity from a graph view.\n\n**Note: this plugin is still on alpha the same as core.async.flow!**\n**This plugin is currently tested against core.async 1.9.808-alpha1**\n\n**Requires FlowStorm \u003e= 4.5.0**\n\n# Setup\n\n[![Clojars Project](https://img.shields.io/clojars/v/com.github.flow-storm/flow-storm-async-flow-plugin.svg)](https://clojars.org/com.github.flow-storm/flow-storm-async-flow-plugin)\n\nIn your deps.edn (same can be done with lein profiles) create an alias like :\n\n```clojure\n{...\n :aliases\n {...\n  :fs-async-flow-plugin {:extra-deps {com.github.flow-storm/flow-storm-async-flow-plugin {:mvn/version \"1.0.1-alpha1\"}} ;; check the latest\n                         :jvm-opts [\"-Dclojure.storm.instrumentOnlyPrefixes.asyncFlowPlugin=clojure.core.async.flow\"\n                                    \"-Dflowstorm.plugins.namespaces.asyncFlowPlugin=flow-storm.plugins.async-flow.all\"]}\n}}}\n```\n\nThen, in your projects, just make sure you start your repl with the `:fs-async-flow-plugin` alias.\n\n# Usage\n\nThe plugin needs you to record the total order timeline, so your recordings should be made with the second (from the right) recording button\nenable.\n\nIn order to extract the graph structures from the recording it needs to record the flow start of your graph, basically when\n`(flow/start graph)` gets called.\n\nAfter that you can draw the graph and extract messages by going to the `Async Flow` plugin tab and selecting the flow-id, then clicking\nthe refresh button.\nYou can move around the nodes by dragging them to improve how the graph looks.\n\nAfter the messages are loaded you should be able to **double-click** on a channel in the graph representation to see\nthe messages in the bottom panel.\n\n**Important: the messages showing on each edge are the messages as received in the input channels of the receiving process,\nnot as they are leaving the sending process.**\n\nIf the message is arriving to a *non :compute node*, double clicking on it will take you to the code stepper right before that\nmessage is going to be processed.\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflow-storm%2Fflow-storm-async-flow-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflow-storm%2Fflow-storm-async-flow-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflow-storm%2Fflow-storm-async-flow-plugin/lists"}