Docs

goalpaca

A pure-Go framework for the ASCOM Alpaca device protocol.

goalpaca  

A Go framework for the ASCOM Alpaca astronomy device protocol: a device-hosting server library, a typed client library, simulators for all ten device types, a driver registry for composed hosts, and a conformance harness.

The module is pure Go and uses the standard library only. It runs on Linux including the Raspberry Pi, on macOS, and on Windows.

Source: github.com/mikefsq/goalpaca .

Scope  

goalpaca tracks the ASCOM standard rather than inventing protocol. The upstream OpenAPI specs are vendored as the reference the implementation is written against, and a conformance harness ported from ConformU keeps it honest as the standard evolves.

The only contract with the rest of the ecosystem is the wire protocol. A goalpaca server is discoverable and usable by any conformant client; the goalpaca client can drive any conformant device, including the .NET OmniSimulator. Neither side shares code.

It does not target the Windows ASCOM Platform or COM, and it is not part of the Python Alpyca ecosystem. Interoperation with those happens over the wire, never through a shared runtime.

Packages  

Path Purpose
alpaca/ The wire vocabulary both sides share: device-type names, per-type enums, the error model, and the ImageBytes codec.
server/ Hosts one or more devices. Authors implement a typed per-type interface plus an optional lifecycle, and the library handles the wire protocol, discovery, Platform 7 async, image transport, write-gating, the management API, and ASCOM compliance. Drivers write only hardware-specific behavior.
client/ Typed client, one per device type, plus dual-stack IPv4 and IPv6 discovery.
registry/ Process-wide driver catalogue for composed hosts. A driver registers a name, ASCOM type, config example, and factory, so a host builds devices from a config file with no compile-time knowledge of each driver.
sim/ Simulators for all ten device types, modeled on the official ASCOM simulators.
conformance/ ConformU-derived checks that drive the client against a simulator or a real server.
specs/ Vendored upstream ASCOM Alpaca OpenAPI specs.

Tools  

Command What it does
cmd/alpacasim Serves all ten simulated devices behind one Alpaca port. A ConformU target and a development server.
cmd/alpacadiscover Runs discovery and prints the servers found and each one’s configured devices.
cmd/discover_proxy Answers Alpaca UDP discovery for drivers that register by unicast heartbeat. Optional and non-standard.
cmd/fault_proxy Fault-injecting reverse proxy for testing Alpaca clients. Forwards unchanged until a fault is armed over its control channel.
go run ./cmd/alpacasim     # all ten simulated devices on :11111

On this page