Skip to content
github-actions[bot] edited this page Apr 2, 2024 · 36 revisions

csp ("Composable Stream Processing") is a functional-like reactive language that makes time-series stream processing simple to do.  The main reactive engine is a C++ based engine which has been exposed to python ( other languages may optionally be extended in future versions ). csp applications define a connected graph of components using a declarative language (which is essentially python).  Once a graph is constructed it can be run using the C++ engine. Graphs are composed of some number of "input" adapters, a set of connected calculation "nodes" and at the end sent off to "output" adapters. Inputs as well as the engine can be seamlessly run in simulation mode using historical input adapters or in realtime mode using realtime input adapters.

Contents

Installation

We ship binary wheels to install csp on MacOS and Linux via pip:

pip install csp

Other platforms will need to see the instructions to build csp from source.

We plan to create conda packages on conda-forge and ship binaries for Windows in the near future.

Contributing

Contributions are welcome on this project. We distribute under the terms of the Apache 2.0 license.

For bug reports or small feature requests, please open an issue on our issues page.

For questions or to discuss larger changes or features, please use our discussions page.

For contributions, please see our developer documentation. We have help wanted and good first issue tags on our issues page, so these are a great place to start.

For documentation updates, make PRs that update the pages in /docs/wiki. The documentation is pushed to the GitHub wiki automatically through a GitHub workflow. Note that direct updates to this wiki will be overwritten.

Roadmap

We do not have a formal roadmap, but we're happy to discuss features, improvements, new adapters, etc, in our discussions area. Here are some high level items we hope to accomplish in the next few months:

  • Support clang compiler and full MacOS support (#33 / #132)
  • Support msvc compiler and full Windows support (#109)
  • Establish a better pattern for adapters (#165)

Adapters and Extensions

  • Redis Pub/Sub Adapter with Redis-plus-plus (#61)
  • C++-based websocket adapter
    • Client adapter in #152
  • C++-based HTTP/SSE adapter
  • Add support for other graph viewers, including interactive / standalone / Jupyter

Other Open Source Projects

  • csp-gateway: Application development framework, built with FastAPI and Perspective. This is a library we have built internally at Point72 on top of csp that we hope to open source later in 2024. It allows for easier construction of modular csp applications, along with a pluggable REST/WebSocket API and interactive UI.
Clone this wiki locally