-
Notifications
You must be signed in to change notification settings - Fork 38
Home
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.
- 0. Introduction
- 1. Generic Nodes (csp.baselib)
- 2. Statistics Nodes (csp.stats)
- 3. Adapters
- 4. Dynamic Graphs
- 5. csp.Struct
- 6. Profiler
- 7. Caching
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.
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 (#33) - Redis Pub/Sub Adapter with Redis-plus-plus
- uWebsockets adapter
- Slack Adapter with python-slack-sdk (#17)
-
csp-gateway
: Application development framework, built with FastAPI and Perspective. This is a library we have built internally at Point72 on top ofcsp
that we hope to open source later in 2024. It allows for easier construction of modularcsp
applications, along with a pluggable REST/WebSocket API and interactive UI. - Interactive graph viewer, both standalone and viewable in Jupyter (with something like ipydagred3)
- Sympy integration via
lambdify
This wiki is autogenerated. To made updates, open a PR against the original source file in docs/wiki
.
Get Started (Tutorials)
Concepts
- CSP Node
- CSP Graph
- Historical Buffers
- Execution Modes
- Adapters
- Feedback and Delayed Edge
- Common Mistakes
How-to guides
- Use Statistical Nodes
- Create Dynamic Baskets
- Write Adapters:
- Profile CSP Code
References
- API Reference
- Glossary of Terms
- Examples
Developer Guide