{"id":19340201,"url":"https://github.com/flowbased/fbp-diff","last_synced_at":"2025-04-23T02:31:17.099Z","repository":{"id":35644655,"uuid":"39919200","full_name":"flowbased/fbp-diff","owner":"flowbased","description":"Diffing tool for FBP graphs","archived":false,"fork":false,"pushed_at":"2020-05-23T12:04:22.000Z","size":62,"stargazers_count":9,"open_issues_count":6,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-19T18:56:15.003Z","etag":null,"topics":["diff","fbp","textual-diff","visual-diff"],"latest_commit_sha":null,"homepage":"","language":"CoffeeScript","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/flowbased.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}},"created_at":"2015-07-29T22:24:07.000Z","updated_at":"2024-10-12T11:43:02.000Z","dependencies_parsed_at":"2022-08-31T20:51:20.691Z","dependency_job_id":null,"html_url":"https://github.com/flowbased/fbp-diff","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flowbased%2Ffbp-diff","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flowbased%2Ffbp-diff/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flowbased%2Ffbp-diff/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flowbased%2Ffbp-diff/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flowbased","download_url":"https://codeload.github.com/flowbased/fbp-diff/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250357618,"owners_count":21417314,"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":["diff","fbp","textual-diff","visual-diff"],"created_at":"2024-11-10T03:25:36.918Z","updated_at":"2025-04-23T02:31:16.872Z","avatar_url":"https://github.com/flowbased.png","language":"CoffeeScript","readme":"# fbp-diff [![Build Status](https://travis-ci.org/flowbased/fbp-diff.svg?branch=master)](https://travis-ci.org/flowbased/fbp-diff) [![Greenkeeper badge](https://badges.greenkeeper.io/flowbased/fbp-diff.svg)](https://greenkeeper.io/)\n\nDiff utility for [FBP graphs](http://github.com/flowbased/fbp),\nmaking it easier to determine changes compare to using a naive textual diff of the JSON files.\n\nFBP graphs are used to specify a [Flow-based programming (FBP)](https://en.wikipedia.org/wiki/Flow-based_programming)\nor dataflow program, consisting of processes and connections between them.\nThe processes are nodes in the graph, and the connections are edges.\n\n## Related\n\nfbp-diff is used by [fbp-diffbot](https://github.com/jonnor/fbp-diffbot) to provide diffs on Github pull requests.\n\n## Status\n\n**Minimally useful**\n\n* `fbp-diff` give a textual diff of node/connection/IIP changes, from a `.json` or `.fbp` file\n* `fbp-git-diff` can lookup diffs of a graph stored in `git`\n* `fbp-git-log` can show the diffs for graph across many `git` revisions\n\n## Installing\n\nNote: You need to have [Node.js](https://nodejs.org) installed\n\nInstall locally (recommended)\n\n    npm install fbp-diff\n\nAlternative, install globally using NPM\n\n    npm install -g fbp-diff\n\n## Command-line usage\n\nAdd the command-line tools to PATH (not needed if installed globally)\n\n    export PATH=./node_modules/.bin:$PATH\n\nDiff between two graphs\n\n    fbp-diff mygraph.json myothergraph.json\n\nDiff between two versions of a graph stored in git\n\n    fbp-git-diff master otherbranch ./graphs/MyGraph.json\n\n## API Usage\n\nfbp-diff also provides a JavaScript API.\n\n```javascript\nvar fbpDiff = require('fbp-diff');\nvar options = {\n  // fromFormat: 'object', // don't parse fromGraph, it is a JS object of a graph (default)\n  // toFormat: 'json', // parse toGraph .json format\n  format: 'fbp' // specify toFormat and fromFormat in one go\n};\nvar fromGraph = \"'hello' -\u003e concat(Concatinator)\\n'world' -\u003e concat -\u003e IN (Print)\";\nvar toGraph = \"'hello' -\u003e IN (Print)\";\nvar diff = fbpDiff.diff(fromGraph, toGraph, options);\nconsole.log(diff);\n```\n\n## TODO\n\nAlso see [./doc/braindump.md](./doc/braindump.md)\n\n### version 0.1 \"minimally useful\"\n\n* Implement diffing of graph properties\n* Implement basic grouping/heuristics/context to make the diff easier to understand\n* Support diffing of process/edge metadata\n* Support diffing of connection order changes\n\n### Later\n\n* Add a visual diffing tool\n* Add a color-based text formatter. Should support console+HTML/Markdown\n* Add a --raw mode, which outputs the calculated diff as JSON\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflowbased%2Ffbp-diff","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflowbased%2Ffbp-diff","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflowbased%2Ffbp-diff/lists"}