Covers Engine 2.0.0
Overview
Choose a client for analysis, dashboards, or external C++ nodes.
Clients connect another application to a running DARTWIC engine. Use the DARTWIC libraries for channel-aware helpers, or TEMPEST directly when you need the transport’s lower-level operation and telemetry APIs.
| Client | Best fit | Connection |
|---|---|---|
| Python | Channel discovery, recorded ranges, and analysis scripts. | TEMPEST ZeroMQ, engine base port and base port + 1. |
| Node.js | Node services, live data, and recorded-data analysis. | TEMPEST ZeroMQ, base port and base port + 1. |
| C++ | Native analysis tools and ordinary engine operations. | Bundled TEMPEST ZeroMQ with automatic reconnect. |
| React | Custom browser dashboards with live channel state. | TEMPEST web endpoint, derived from the engine base port. |
| C++ Share | External nodes exchanging channels, commands, and ARGUS events. | Managed ZeroMQ/TEMPEST plus Share readiness. |
| Custom Share application | An external node using your own frame delivery. | Share Protocol SDK with an application-supplied transport. |
Download and install locally
DARTWIC clients are distributed as release archives through Downloads. Download the client you need, extract it, and follow its guide to install it locally. They are not currently published on PyPI or npm.
| Client | Install the downloaded release |
|---|---|
| Python | Use pip with the path to the extracted package directory. |
| Node.js and React | Use npm pack on the extracted directory, then npm install the resulting local .tgz file in your application. |
| C++ and C++ Share | Build and install the extracted source with CMake, then link the installed target. |
Each DARTWIC client archive bundles its TEMPEST transport. pip and npm still fetch third-party dependencies; C++ dependency requirements are listed in the guides. Use the downloaded release directory for these instructions: release packaging adds the bundled transport to the repository’s client sources.
Operations and telemetry
An operation requests work and returns a response. Telemetry arrives asynchronously. Check a response’s error before reading its payload; a timeout does not prove a state-changing operation failed to execute. Query the resulting state before retrying a command.
External clients obey the same command authority as the interface. Timing-critical reactions belong in the engine’s inline calculations or events, not a dashboard refresh loop.
See Using TEMPEST for endpoint, envelope, telemetry, and detached-job contracts.