Skip to main content

A state machine for data projects

Project description

Burr

What is Burr?

Burr is a state machine for data/AI projects. You can (and should!) use it for anything where managing state can be hard. Hint: managing state is always hard!

Link to documentation.

Burr is:

  1. A (dependency-free) python library that enables you to build and manage state machines with simple python functions
  2. A server that can run your state machines and provide a UI to track execution/debug

What can you do with Burr?

Burr can be used for a variety of applications. Burr can build a state machine to orchestrate, express, and track:

  1. A gpt-like chatbot
  2. A machine learning pipeline
  3. A trading simulation

And a lot more!

Using hooks and other integrations you can (a) integrate with any of your favorite vendors (LLM observability, storage, etc...), and (b) build custom actions that delegate to your favorite libraries.

Burr will not tell you how to build your models, how to query APIs, or how to manage your data. It will help you tie all these together in a way that scales with your needs and makes following the logic of your system easy. Burr comes out of the box with a host of integrations including tooling to build a UI in streamlit and watch your state machine execute.

Burr at work

Why the name Burr?

Burr is named after Aaron Burr, founding father, third VP of the United States, and murderer/arch-nemesis of Alexander Hamilton. We imagine a world in which Burr and Hamilton lived in harmony and saw through their differences. We originally built Burr as a harness to handle state between executions of Hamilton DAGs, but realized that it has a wide array of applications and decided to release it.

Getting Started

`` To get started, install from pypi, using your favorite package manager:

pip install "burr[start]"

This includes the dependencies for the tracking server (see next step) -- alternatively if you want the core library only then just run pip install burr. Then, run the server and check out the demo projects:

$ burr

2024-02-23 11:43:21.249 | INFO     | burr.cli.__main__:run_server:88 - Starting server on port 7241

This will start a server and open up a browser window with a few demo projects preloaded for you to play with.

Next, see the documentation for getting started, and follow the example. Then read through some of the concepts and write your own application!

Roadmap

While Burr is stable and well-tested, we have quite a few tools/features on our roadmap!

  1. Various efficiency/usability improvements for the core library (see planned capabilities for more details). This includes:
    1. Fully typed state with validation
    2. First-class support for retries + exception management
    3. More integration with popular frameworks (LCEL, LLamaIndex, Hamilton, etc...)
  2. Cloud-based checkpointing/restart (save state to db and replay/warm start, backed by a configurable database)
  3. Tooling for hosted execution of state machines, integrating with your infrastructure (Ray, modal, FastAPI + EC2, etc...)

If you want to avoid self-hosting the above solutions we're building Burr Cloud. To let us know you're interested sign up here for the waitlist to get access.

Contributing

We welcome contributors! To get started on developing, see the developer-facing docs.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

burr-0.4.0rc0.tar.gz (259.3 kB view details)

Uploaded Source

Built Distribution

burr-0.4.0rc0-py3-none-any.whl (153.4 kB view details)

Uploaded Python 3

File details

Details for the file burr-0.4.0rc0.tar.gz.

File metadata

  • Download URL: burr-0.4.0rc0.tar.gz
  • Upload date:
  • Size: 259.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for burr-0.4.0rc0.tar.gz
Algorithm Hash digest
SHA256 1faeb10818b49249af92e1ec24b84caf7652635d8c8ff44ec4934d17b95976f0
MD5 61dfa9b6424829facba0d2a0d36cb3d6
BLAKE2b-256 c68c3b39ac7d904d6911b9b0c0efe8b6bc88e95e66476b7d1ffcf10c4087c824

See more details on using hashes here.

File details

Details for the file burr-0.4.0rc0-py3-none-any.whl.

File metadata

  • Download URL: burr-0.4.0rc0-py3-none-any.whl
  • Upload date:
  • Size: 153.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for burr-0.4.0rc0-py3-none-any.whl
Algorithm Hash digest
SHA256 a93ec622a9b371b30e8ac3803d179f712b548c7149acd5144bc576022b36aec8
MD5 b9c57e24a67753c4ceb34337f54ef73c
BLAKE2b-256 10d802b9cb3a9bd4de3ff36eb9829a6cecb74fc238f8d135cc51ee70806c648e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page