Bonobo
What it is
Bonobo is a free, open-source framework for building ETL pipelines in Python. It connects Python callables or iterables into directed graphs that can be visualized and run, with nodes processing streams of independent rows in parallel. Transformations can be written in plain Python or as classes, with each unit kept small and scoped to support testing and maintenance. Built-in extractors and writers cover CSV, JSON, XML, and XLS; the listed inputs also include REST and SOAP APIs, filesystems, storage services, and SQL or NoSQL databases. Excel and Pickle are among the supported formats. The SQLAlchemy extension adds SQL database capabilities, while the Docker extension can run a local job with `bonobo runc`. In Jupyter Notebook, Bonobo can show job status in an HTML widget. The documentation positions it for small-scale data and says it has no client-server component or daemon. Bonobo is self-hosted, released under Apache License 2.0, and described as alpha, so its APIs may change.
For and against
For
- Runs graph nodes in parallel over independent rows.
- Built-in extractors and writers cover CSV, JSON, XML, and XLS.
- SQLAlchemy extension adds SQL database capabilities.
- Can show live job status in Jupyter Notebook.
- Apache License 2.0; free to use.
Against
- Documentation describes the software as alpha; APIs may change.
- Intended for small-scale data; no client-server component or daemon.
- Docker extension cannot run Docker inside a Docker container.
The verdict
Bonobo offers Python developers a focused way to assemble and run ETL graphs, with useful format support and extensions for SQL, Docker, and Jupyter. Its alpha status and small-scale focus are important considerations for adoption.
Who it suits
Bonobo suits Python developers building small-scale ETL jobs from simple, testable transformations. It is a fit for teams comfortable with self-hosted software and APIs that may change.
Plans and prices
Bonobo
Open-source software · Apache License 2.0
Read 8 Oct 2026 · bonobo-project.org
On the record
- Built-in formats
- The site lists built-in extractors and writers for CSV, JSON, XML, and XLS formats.bonobo-project.org · read 4 Oct 2026
- Data flow
- It streams data one row at a time through a directed graph of Python callables.docs.bonobo-project.org · read 8 Oct 2026
- Docker
- The Docker extension can run a local ETL job inside a container using the bonobo runc command.bonobo-project.org · read 8 Oct 2026
- Docker integration
- The Bonobo-Docker extension can run a local ETL job in a Docker container with the bonobo runc command.bonobo-project.org · read 4 Oct 2026
- Docker limitation
- The Docker extension page says it does not support running Docker inside a Docker container.bonobo-project.org · read 4 Oct 2026
- Execution
- Bonobo can execute graph nodes in parallel and show live job statistics through its command-line interface.bonobo-project.org · read 8 Oct 2026
- Formats
- Built-in extractors and writers work with formats including CSV, JSON, XML, and Excel.bonobo-project.org · read 8 Oct 2026
- Graph model
- Callable or iterable Python objects can be connected into directed graphs, which Bonobo can visualize and execute.bonobo-project.org · read 4 Oct 2026
- Inputs and outputs
- The site says Bonobo can read from HTTP REST/SOAP APIs, filesystems, storage services, and SQL or NoSQL databases, and read or write formats including CSV, JSON, XML, Excel, and Pickle.bonobo-project.org · read 4 Oct 2026
- Integrations
- The SQLAlchemy extension adds capabilities for extracting from and loading into SQL databases.bonobo-project.org · read 8 Oct 2026
- Intended user
- The site says users who know Python can get started in 10 minutes and presents Bonobo as a toolkit for building ETL jobs.bonobo-project.org · read 4 Oct 2026
- Intended users
- The project describes Bonobo as a toolkit for Python developers writing ETL jobs with simple, testable transformations.github.com · read 8 Oct 2026
- Jupyter
- Bonobo can detect a Jupyter Notebook environment and display job status in an HTML widget.bonobo-project.org · read 8 Oct 2026
- License
- Bonobo and its extensions are released under the Apache License 2.0.bonobo-project.org · read 8 Oct 2026
- Notebook support
- Bonobo can detect when it is running in a Jupyter Notebook and display live job status with an HTML widget.bonobo-project.org · read 4 Oct 2026
- Platform support
- The documentation describes Linux support as strong, says Windows support is correct but may have minor issues, and mentions OSX developer use.docs.bonobo-project.org · read 8 Oct 2026
- Product
- Bonobo is a lightweight ETL framework for Python 3.5+ that builds data transformation pipelines from Python primitives and runs them in parallel.bonobo-project.org · read 4 Oct 2026
- Purpose
- Bonobo is a lightweight Python ETL framework for building data transformation pipelines.bonobo-project.org · read 8 Oct 2026