{"id":26728836,"url":"https://github.com/slashdotted/pomapure","last_synced_at":"2026-04-18T02:31:51.044Z","repository":{"id":157956076,"uuid":"101059508","full_name":"slashdotted/PomaPure","owner":"slashdotted","description":"PoorMan's Pipeline","archived":false,"fork":false,"pushed_at":"2018-11-16T21:41:17.000Z","size":128,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-27T22:40:07.992Z","etag":null,"topics":["data","json","modular","module","pipeline","processing"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/slashdotted.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2017-08-22T12:18:14.000Z","updated_at":"2023-05-05T16:57:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"7faaefab-aad5-401a-85e4-7a4a8dce6d63","html_url":"https://github.com/slashdotted/PomaPure","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/slashdotted/PomaPure","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slashdotted%2FPomaPure","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slashdotted%2FPomaPure/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slashdotted%2FPomaPure/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slashdotted%2FPomaPure/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/slashdotted","download_url":"https://codeload.github.com/slashdotted/PomaPure/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slashdotted%2FPomaPure/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31953769,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["data","json","modular","module","pipeline","processing"],"created_at":"2025-03-27T22:36:48.027Z","updated_at":"2026-04-18T02:31:51.038Z","avatar_url":"https://github.com/slashdotted.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Poma Pipeline\n\nThis tool enables you to easily create modular pipelines for processing data. Multiple threads and/or distributed execution (on multiple machines) is natively supported. Pipelines are defined through a JSON file: each module is compiled into a separate library which gets loaded dynamically. If necessary pipeline descriptions can be embedded into the code of your application.\nA description of the base modules shipped with this tool is in the Documentation directory.\n\nTo compile you need to satisfy the following dependencies:\n\n- CMake (git version \u003e 3.9)\n- Boost \u003e= 1.65.0\n- (for distributed processing) 0MQ (ZeroMQ)\n\n## Install instructions (Ubuntu/Debian)\n\nThese are the instructions to compile the framework on a Ubuntu/Debian machine. To keep you system clean we are going to package additional software into deb files. This procedure was tested on a clean Ubuntu MATE 16.04.2 install.\n\n### Install CMake\nSince CMake releases do not yet support Boost \u003e=1.64 (hence also 1.65) we are going to install from https://github.com/Kitware/CMake.git: before continuing ensure that you have no CMake package installed on your system.\n\nFirst install the required dependencies `sudo apt-get install --assume-yes build-essential checkinstall fakeroot git pkg-config unzip libcurl4-openssl-dev libz-dev wget`\n\nCreate the required target directories with `sudo mkdir -p /usr/local/share/doc` and `sudo mkdir -p /usr/local/lib`\nConfigure the library path with `sudo echo  \"/usr/local/lib\" | sudo tee /etc/ld.so.conf.d/usrlocallib.conf \u0026\u0026 sudo ldconfig`.\n\nClone the CMake git repository `git clone https://github.com/Kitware/CMake.git`, and then `cd CMake`. Execute `./bootstrap --system-curl --prefix=/usr/local`. Then you can proceed with `make`. To create a package for CMake use `sudo checkinstall -y --pkgname poma-cmake --pkgversion=3.9 --pkgrelease 1`. Don't forget to add /usr/local/bin to your PATH before continuing (on Ubuntu it should be already set)!\n\n### Install Boost (1.65.0)\nDownload Boost from https://sourceforge.net/projects/boost/files/boost/1.64.0/boost_1_65_0.tar.bz2 and\nuncompress the archive: `wget https://sourceforge.net/projects/boost/files/boost/1.65.0/boost_1_65_0.tar.bz2 \u0026\u0026 tar xvjpf boost_1_65_0.tar.bz2 \u0026\u0026 cd boost_1_65_0` .Run `./bootstrap.sh --with-libraries=filesystem,program_options,system,chrono,thread --exec-prefix=/usr/local`. When building is completed, run `sudo checkinstall -y --pkgname poma-boost --pkgversion=1.65 --pkgrelease 1  ./b2 install --prefix=/usr/local` to install and package Boost\n\n### Install ZeroMQ\nInstall the required tools to compile ZeroMQ with `sudo apt-get install autoconf automake libtool`\nDownload ZeroMQ from https://github.com/zeromq/libzmq/releases/download/v4.2.2/zeromq-4.2.2.tar.gz with `wget https://github.com/zeromq/libzmq/releases/download/v4.2.2/zeromq-4.2.2.tar.gz`. Uncompress this file `tar xvfz zeromq-4.2.2.tar.gz`and move into the source directory `cd zeromq-4.2.2/`. Execute `./autogen.sh \u0026\u0026 ./configure` then compile with `make`.\nInstall with `sudo checkinstall -y --pkgname poma-libzmq --pkgversion 1 --pkgrelease 1` then execute `sudo ldconfig`.\n\n### Compile Poma\nDownload a snapshot or clone the git repository at https://github.com/slashdotted/PomaPure\nFrom the root directory, run `mkdir build \u0026\u0026 cd build \u0026\u0026 cmake ..`; if everything goes well you can compile the program with `make`.\n\nMove to the Modules directory and run `\nfor i in */; do cd $i \u0026\u0026 mkdir build \u0026\u0026 cd build \u0026\u0026 cmake -DCMAKE_BUILD_TYPE=Release .. \u0026\u0026 make \u0026\u0026 cd ../..; done`\n\n### Graphical dataflow editor (Experimental)\n\nAn experimental version of a graphical dataflow editor is available at https://github.com/slashdotted/PomaPipelineEditorExperimental\n\n### Customizing Poma\n\nModules in a Poma pipeline exchange *Packet\u003cT\u003e* structures, where T is a user-defined type: in order to customize Poma you first need to define this data type. Edit the include/PomaDefault.h file: in the default implementation you will find a *MyData* struct with some methods. You can add your own fields to this structure, but you also need to ensure that the *copy constructor*, *assignment operator*, *destructor*, *serialize* and *deserialize* methods are correctly implemented. User defined data is associated with the *m_data* field of the *Packet* struct.\n\nIn addition to your custom fields each packet contains an *m_properties* field of type *boost::property_tree::ptree*: this field is used to add metadata information to each packet.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslashdotted%2Fpomapure","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fslashdotted%2Fpomapure","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslashdotted%2Fpomapure/lists"}