Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


Plum is a data processing pipeline for PHP.

Subscribe to updates I use plum

Statistics on plum

Number of watchers on Github 116
Number of open issues 2
Average time to close an issue 5 days
Main language PHP
Average time to merge a PR about 1 hour
Open pull requests 2+
Closed pull requests 2+
Last commit over 3 years ago
Repo Created over 4 years ago
Repo Last Updated over 1 year ago
Size 256 KB
Organization / Authorplumphp
Page Updated
Do you use plum? Leave a review!
View open issues (2)
View plum activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating plum for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)


Plum is a data processing pipeline that helps you to write structured, reusable and well tested data processing code.

Build Status Windows Build status Scrutinizer Code Quality Code Coverage StyleCI

Latest Release MIT License Total Downloads

Developed by Florian Eckerstorfer in Vienna, Europe.


Plum is a data processing pipeline, that means it reads data, filters and converts it and then writes the data.

  • Filters, converters and even writers are pipeline elements that can be attached to a workflow in arbitrary order
  • Readers are iterators that can return values of arbitrary type: arrays, objects or scalars, it doesn't matter to Plum
  • Conditional converters that are only applied to an item if it passes a filter
  • Ability to concatenate workflow to create smaller and better reusable workflows
  • Read from multiple sources, i.e., merge data from different sources into an output
  • Plums power comes from its extendability, check out additional packages and integrations

Plum has been greatly inspired by ddeboer/data-import.


Here is a quick preview, but please check out the documentation.

use Plum\Plum\Workflow;

$workflow = new Workflow();
$workflow->addFilter(/* filter */)
         ->addConverter(/* converter */)
         ->addWriter(/* writer */);
$workflow->process(/* reader */);


You can install Plum using Composer (recommended) or by downloading a release.

$ composer require plumphp/plum


If you want to help us improve Plum you can contribute in a number of different ways:

  • Fix bugs or add additional features (check our Waffle board to see features and bugs that are ready to go)
  • Help others by providing support to others: Issues and Chat
  • Improve the documentation
  • Spread the work by tweeting, blogging or talking about Plum at your local user group

When you need help or have any questions feel free to contact us.


If you need help getting started, run into problems or want to discuss new features you can also contact us. You can either create a new issue, you can join our Gitter chat or ping us on Twitter @cocurco.

Please be excellent to each other.


Plum is a Cocur open source project.

Change Log



The MIT license applies to plumphp/plum. For the full copyright and license information, please view the LICENSE file distributed with this source code.

plum open pull requests (View All Pulls)
  • Applied fixes from StyleCI
  • Add NumberFormatConverter
plum questions on Stackoverflow (View All Questions)
  • green plum (Postgres SQL)
  • Redirecting Green Plum COPY Errors to a file
plum list of languages used
Other projects in PHP