CAUTION: Although functional and well written, this software has mainly been coded by openAI-Codex
QUARC is a deterministic, cyclic automation runtime that executes four strictly separated phases—READ, PROGRAM, EVAL, and COMMIT—on a fixed schedule. The controller stores typed in-memory cells, lets reusable control programs derive new signals, evaluates expression-based logic, and finally commits changes back to configured outputs using a write-on-change strategy. Protocol support is provided by pluggable drivers so deployments can run without physical IO and attach only the transports they require.
- Deterministic cycle scheduler with isolated read/program/eval/commit phases.
- Typed cell store with diagnostic propagation and manual override helpers.
- Configurable expression DSL with validation hooks and runtime logging.
- Transport-agnostic driver architecture with reusable bundles.
- Optional live view UI and Prometheus-compatible telemetry exporter.
- Runtime overview
- Configuration guide
- Reusable programs
- Driver integration
- Expression DSL reference
- Live view and telemetry
- Random reader driver
-
Build/install the binary:
go build ./cmd/...
-
Start the controller with your configuration:
./quarc --config path/to/config.cue
Use
--config-checkto produce a detailed logic validation report without starting the service, or--healthcheckto perform a lightweight configuration validation suitable for container health probes.
The Go coverage workflow runs go test ./... -coverprofile=coverage.out, publishes the coverage profile as a build artifact, and reports the aggregated coverage percentage in the job summary.
Releases tag the root module and the driver modules so that consumers can pin compatible versions. When creating a new version, create matching tags for:
github.com/timzifer/quarcgithub.com/timzifer/quarc/drivers/modbusgithub.com/timzifer/quarc/drivers/canstreamgithub.com/timzifer/quarc/drivers/bundle
This ensures downstream users embedding the drivers can resolve consistent module versions.
Run the full test suite with:
go test ./...