The Magix project is a sub-project of Waltz-Controls. Piazza is a federation of connectors governed by the Magix. Magix is a core component that creates a Reactive Stream from a messages flow:
Message is specified in Waltz-Controls RFC1 [1]. Every connector (blue arrows in the picture above) SHOULD define its payload in a corresponging RFC.
Here we define all repositories that are related to the Piazza project.
Magix is an abstract component. Its API is defined in Waltz-Controls RFC2 [2]
Implementations of the Magix component hide underlaying transport from the client e.g. for single-process deployment it can be ZMQ inproc etc
Endpoints within piazza exchange messages via Magix. Messages are defined in the corresponding RFCs
RFCs
| Platform | Link |
|---|---|
| GitHub | waltz-controls/RFC |
Known implementations
| Platform | State | Transport | URL |
|---|---|---|---|
| JavaEE | Experimental | HTTP/SSE | waltz-controls/magix-war-plugin |
| Kotlin | Experimental | HTTP/SSE/RSockets | mipt-npm/controls.kt/magix |
Known client implementations
| Platform | State | Transport | URL |
|---|---|---|---|
| JS6/Browser | Experimental | HTTP/SSE | waltz-controls/waltz-magix-plugin |
| Python 3.6+ | Experimental | HTTP/SSE | waltz-controls/magix-python-client |
| Java 11+ | Experimental | HTTP/SSE | waltz-controls/magix-java-client |
A connector is a component that provides interface between the Magix and upstream endoint(s) e.g. Tango-Controls. Each component MUST define message's payload standard that it accepts and sends in Waltz-Controls RFCs
Known connectors
| Upstream | Platform | State | Transport | RFC | URL |
|---|---|---|---|---|---|
| Tango-Controls | JavaEE | Experimental | HTTP/SSE | N/A | waltz-controls/tango-magix-connector |
| Controls.kt | Kotlin | Experimental | HTTP/SSE/RSockets | N/A | mipt-npm/controls.kt/controls-magix-client |
