Skip to main content
Barfi Logo

Welcome to Barfi ! 👋

A Python visual Flow Based Programming library to buld workflows that integrates into existing codebases.

Demo GIF

Documentation : find it here

Barfi is a Flow-Based Programming framework that offers a graphical programming interface. It is designed to integrate seamlessly into your existing Python applications.

Barfi serves as an abstraction of Graphical Programming, Flow-Based Programming, or Node Programming, where a Block corresponds to a Node, and a Link (or connection) corresponds to an Edge. These concepts go by different names, each reflecting specific needs or philosophies. In Barfi, they form the foundation of a framework for building, saving, and executing workflows as needed. The framework is intentionally kept simple, providing APIs that allow customization for diverse use cases and philosophies.

Many existing visual Flow-Based Programming (FBP) libraries/frameworks operate within their own confined isolated environments, limiting their usability as components in existing applications or scripts. Barfi addresses this by decoupling the graphical programming interface from the computation environment, which eables easy integration into existing apps. The graphical interface is provided through a Streamlit widget: st_flow (with a Jupyter Notebook widget currently in development), while the computation environment is managed independently via the ComputeEngine.

Note: The current version >= 1.0.0 introduces many changes from <= 0.7.0. Check the changelog for more info on this. Versions will no longer be maintained.

Quickstart

A workflow consists of a bunch of Blocks connected to each other, the information of the blocks and connections is stored in a FlowSchema, which is then executed to execute each program/function connected to each Block and to propagate the data from one Block to another.

Installation

Since we will be using the streamlit widget st_flow for the graphical interface here, we will install the package with the streamlit requirements:

pip install barfi[streamlit]

Note: As a best practice, it is recommended to setup a virtual environment to manage the dependencies of the project. If you do not know how to do this, this blog or this section could be of help.

Your First App

Follow this getting started guide on building your first Blocks, creating a FlowSchema and executing it using a ComputeEngine, save it using a SchemaManager.

Getting Started : find it here

Migration from v0

If you were using the versions <= 0.7.0, a migration guide is being written. For using version >= 1.0.0, conceptually all the concepts remain with a minor API changes. v1.0.0 introduces a stronger type checking mechanism, and decouples and SchemaManager and ComputeEngine from the UI by providing separate classes to run those functions. You can check the API docs to get familiarized on how to use them.

Under the hood

The Flow Editor UI is built using ReactFlow.

Metadata

Release files for barfi 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for barfi 1.1.0
File Size Uploaded Provenance Actions
barfi-1.1.0.tar.gz 894.4 kB Without provenance Details for barfi-1.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for barfi 1.1.0
File Interpreter ABI Platform Actions
barfi-1.1.0-py3-none-any.whl Python 3 none any Details for barfi-1.1.0-py3-none-any.whl

Total release size: 1.8 MB

Release files / barfi-1.1.0.tar.gz

Download URL barfi-1.1.0.tar.gz
Size 894.4 kB
Tags Source
SHA-256 checksum
How to use checksums
2d5345fc24534738d31fc643687628d55516ef452e77cc2f8ca375326744294b
BLAKE2b-256 checksum
How to use checksums
4196868ab77bcc75449375026c800891255873414e3fddb63850960c8e981a7d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.0.1 CPython/3.13.1 Darwin/24.2.0

Release files / barfi-1.1.0-py3-none-any.whl

Download URL barfi-1.1.0-py3-none-any.whl
Size 907.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a5b6ec40aeda6656d901209f7d33db3f1c1ef650665aa752c0f1c555d497e9fe
BLAKE2b-256 checksum
How to use checksums
e6188fbd3e62e077e9afbb37bb3a97f127449290e19c93257ba20458cd836743
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.0.1 CPython/3.13.1 Darwin/24.2.0

Security for barfi 1.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page