|
CAPIO-CL 1.3.4
CAPIO-CL: Cross Application Programmable I/O - Coordination Language
|
| OS / Arch | |||
|---|---|---|---|
| YES | YES | YES | |
| YES | YES | N.A. |
CAPIO-CL is a novel I/O coordination language that enables users to annotate file-based workflow data dependencies with synchronization semantics for files and directories. Designed to facilitate transparent overlap between computation and I/O operations, CAPIO-CL allows multiple producer–consumer application modules to coordinate efficiently using a JSON-based syntax.
For detailed documentation and examples, please visit:
The CAPIO Coordination Language (CAPIO-CL) allows applications to declare:
At runtime, CAPIO-CL’s parser and engine components analyze, track, and manage these declared relationships, enabling * *transparent data sharing** and cross-application optimizations.
jsoncons, GoogleTest and pybind11 are fetched automatically by CMake — no manual setup required.
By default, this will:
CAPIO-CL can be included directly into another CMake project using:
When included this way, unit tests and python bindings are not built, keeping integration clean for external projects.
CAPIO-CL now provides native Python bindings built using pybind11.
These bindings expose the core C++ APIs (Engine, Parser and Serializer), directly to Python, allowing the CAPIO-CL logic to be used within python projects.
CAPIO-CL is available on PyPI! Simply run
You can build and install the Python bindings directly from the CAPIO-CL source tree using:
This will build the Python wheel and install it into your current environment using an ad-hoc build environment, which is downloaded, installed, and configured in isolation. A faster way to build and install CAPIO-CL is to use native system packages and then run from within the CAPIO-CL root directory:
This assumes that all build dependencies not fetched by cmake are available.
A simplified example of CAPIO-CL usage in C++:
The py_capio_cl module provides access to CAPIO-CL’s core functionality through a high-level Python interface.
This section describes the REST-style Web API exposed by the CapioCL Web Server. The server provides HTTP endpoints for configuring and querying the CapioCL engine at runtime. Within the bruno_webapi_tests you can find several tests and examples on how to perform requests to the API webserver using bruno.
All endpoints communicate using JSON over HTTP. To enable the webserver, users needs to explicitly start it with:
or equivalently in python with:
By default, the webserver listens only on local connection at the following address: 127.0.0.1:5520. No authentication services are currently available, and as such, users should put particular care when allowing connections from external endpoints.
| Name | Role | Contact |
|---|---|---|
| Marco Edoardo Santimaria | Designer and Maintainer | email | Homepage |
| Iacopo Colonnelli | Workflows Expert and Designer | email | Homepage |
| Massimo Torquati | Designer | email | Homepage |
| Marco Aldinucci | Designer | email | Homepage |
| Name | Role | Contact |
|---|---|---|
| Alberto Riccardo Martinelli | Designer | email | Homepage |