{"id":13573778,"url":"https://github.com/imgflo/imgflo","last_synced_at":"2026-01-12T11:47:36.337Z","repository":{"id":15797100,"uuid":"18536487","full_name":"imgflo/imgflo","owner":"imgflo","description":"Node-based image processing with GEGL and Flowhub","archived":false,"fork":false,"pushed_at":"2024-02-06T10:57:43.000Z","size":10543,"stargazers_count":88,"open_issues_count":33,"forks_count":9,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-11-05T08:37:09.542Z","etag":null,"topics":["c","fbp-runtime","flowhub","gegl","graph-processing","image-processing"],"latest_commit_sha":null,"homepage":"","language":"C","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/imgflo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.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":"2014-04-07T22:18:11.000Z","updated_at":"2024-09-28T11:09:55.000Z","dependencies_parsed_at":"2024-11-05T08:32:03.048Z","dependency_job_id":"ecaae24e-1ab7-4ff0-a56e-0c8948e90dd4","html_url":"https://github.com/imgflo/imgflo","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imgflo%2Fimgflo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imgflo%2Fimgflo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imgflo%2Fimgflo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imgflo%2Fimgflo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/imgflo","download_url":"https://codeload.github.com/imgflo/imgflo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247179795,"owners_count":20897097,"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":["c","fbp-runtime","flowhub","gegl","graph-processing","image-processing"],"created_at":"2024-08-01T15:00:41.120Z","updated_at":"2026-01-12T11:47:36.286Z","avatar_url":"https://github.com/imgflo.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/jonnor/imgflo.svg?branch=master)](https://travis-ci.org/jonnor/imgflo)\n[![Coverity Scan Status](https://scan.coverity.com/projects/3446/badge.svg)](https://scan.coverity.com/projects/3446)\n\nimgflo\n==========\nimgflo is an image-processing runtime built on top of [GEGL](http://gegl.org)\nwhich can be visually programmed using [Flowhub.io](http://flowhub.io).\n\nIt is used by [imgflo-server](https://github.com/imgflo/imgflo-server), which\nadds a HTTP API for image processing.\n\nimgflo is pronounced \"Imageflo(w)\".\n\n[![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy)\n\nChangelog\n----------\nSee [./CHANGES.md](./CHANGES.md)\n\nLicense\n--------\nMIT\n\nNote: GEGL itself is under LGPLv3.\n\n\nAbout\n--------\nThe imgflo runtime implements the [FBP runtime protocol]\n(http://noflojs.org/documentation/protocol) over WebSockets.\nIt also provides an executable that can load and run a FBP graph defined as\n[JSON](http://noflojs.org/documentation/json).\n\nThe runtime uses GEGLs native graph structure, wrapped to be compatible with\nFBP conventions and protocols:\n\n* All *GEGL operations* are automatically made available as *imgflo components*\n* Each *imgflo process* is a *GeglNode*\n* *imgflo edges* can pass data flowing between *GeglPad*\n\nThe edge limitation means that only ports with type *GeglBuffer* (image data) can be connected together.\nOther data-types are in GEGL exposed as a *GProperty*, and can currently only be set it to a *FBP IIP* literal.\nIn the future, support for streaming property changes from outside is planned.\n\nOne exception is for the special *Processor* component, which is specific to imgflo.\nThis component is attached to outputs which are to be computed interactively.\nBecause GEGL does processing fully *on-demand*, something needs to *pull* at the edges\nwhere image data should be realized.\n\n\nDeploying to Heroku\n==========================\n\n\nConfigure. Flowhub user id is found in the Flowhub user interface (Settings or Register runtime)\n\n    heroku config:set HOSTNAME=YOURAPP.herokuapp.com\n    heroku config:set FLOWHUB_USER_ID=MYUSERID\n\nCheck the log that the initial registration was successful, and then save the runtime ID permanently\n\n    heroku logs\n    heroku config:set IMGFLO_RUNTIME_ID=MYRUNTIMEID\n\nSee \"Run the runtime\" for more detail\n\nDeveloping and running locally\n==========================\nNote: imgflo has only been tested on GNU/Linux and Mac OSX systems.\n_Root is not needed_ for any of the build.\n\nDownload it via git\n\n    git clone https://github.com/imgflo/imgflo.git\n    cd imgflo\n\nPre-requisites\n---------------\nimgflo requires git master of GEGL and BABL, as well as a custom version of libsoup.\nIt is recommended to let make setup this for you, but you can use existing checkouts\nby customizing PREFIX.\n\nInstall [node.js](https://nodejs.org/) dependencies. Only needed for tests\n\n    npm install\n\nFor Mac OSX, you must [install Homebrew](http://brew.sh/)\n\n### Building dependencies from source (recommended on Linux)\n\nYou only need to build the dependencies once, or when they have changed. See 'git log -- thirdparty'\n\n    git submodule update --init\n    make dependencies\n\n_If_ you are on an older distribution, you may also need a newer glib version\n\n    # make glib # only for older distros, where GEGL fails to build due to too old glib\n\n### Installing pre-built dependencies (recommended on OSX)\n\nIf you use this option, you must specify `RELOCATE_DEPS=true` in the commands below.\n\n    make travis-deps\n\nBuild\n-------\nNow you can build \u0026 install imgflo itself\n\n    make install\n\nTo verify that things are working, run the test suite\n\n    make check\n\nRun\n----\nTo start the runtime\n\n    make run GRAPH=graphs/checker.json\n\nThis should open Flowhub automatically in your browser and connect to the runtime.\n\nIf the browser does not open, and you get \"Operation not supported\", add `NOAUTOLAUNCH=1`.\nThen you need to copy/paste the \"Live URL:\" into your browser manually to connect.\n\n\n## Registering runtime\n\nimgflo can automatically ping Flowhub when it is available.\n\n* Open [Flowhub](http://app.flowhub.io)\n* Login with your Github account\n* Click \"Register\" under \"runtimes\" to find your user ID. Copy it and paste in command below\n\nSet up registration\n\n    export FLOWHUB_USER_ID=MYUSERID\n\nFinally, to run the Flowhub.io runtime use.\nYou can customize the port used by setting PORT=3322\n\n    make run\n\nIf successful, you should see a message 'Registered runtime' with the new id.\nYou should save this, and on subsequent runs on same machine use this id.\n\n    export IMGFLO_RUNTIME_ID=MYID\n\nIn Flowhub, refresh the runtimes and you should see your new \"imgflo\" instance. \nNote: sometimes a page refresh is needed.\n\nYou should now be able to create a new project in Flowhub of the \"imgflo\" type,\nselect your local runtime and create image processing graphs!\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimgflo%2Fimgflo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimgflo%2Fimgflo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimgflo%2Fimgflo/lists"}