Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/traconiq/tachoparser/llms.txt

Use this file to discover all available pages before exploring further.

dddserver wraps the dddparser decoding logic behind a gRPC interface, allowing remote clients to send raw DDD bytes over the network and receive structured protobuf responses. It is the right choice when you need to call tachograph parsing from a service rather than from a shell script, or when you want to centralise parsing in a Docker container. See gRPC API overview for the full service definition and available RPC methods.

Flags

-listen
string
default:":50055"
TCP address to listen on. Use the standard host:port format. To listen on all interfaces on a specific port, omit the host (e.g. :50056). Defaults to :50055.
-statsd
string
Address of a statsd-compatible server (e.g. localhost:8125). When set, dddserver emits timing and counter metrics. If not set, no metrics are emitted.

Examples

Start the server on the default port:
./dddserver
Start the server on a custom port:
./dddserver -listen :50056
Start the server with statsd metrics:
./dddserver -statsd localhost:8125
Start the server on a custom port with statsd metrics:
./dddserver -listen :50056 -statsd localhost:8125

Concurrency

dddserver uses a global mutex to serialise all parsing operations. Only one ParseVu or ParseCard RPC call executes at a time; concurrent requests queue behind the lock. If you need higher throughput, run multiple dddserver instances behind a load balancer rather than relying on a single instance to serve concurrent requests.

Consul service registration

dddserver can register itself with a Consul agent at startup and deregister on shutdown. Service registration is triggered by the CONSUL_ADDR environment variable. When set, the server registers under the service name tachoparser (overridable with CONSUL_SERVICE_NAME) and registers a TCP health check on the listen address with a 60-second interval.
Environment variableDescription
CONSUL_ADDRConsul agent address (e.g. 127.0.0.1:8500). Registration is skipped if unset.
CONSUL_SERVICE_NAMEService name to register. Defaults to tachoparser.
CONSUL_SCHEMEHTTP scheme for the Consul API. Defaults to http.
CONSUL_DATACENTERConsul datacenter. Uses Consul default if unset.
The server generates a random service ID suffix (e.g. tachoparser-a1b2c3d4) to distinguish multiple instances running in the same Consul catalogue.
Consul registration is entirely optional. If CONSUL_ADDR is not set, the server starts normally without attempting to contact Consul.

Running in Docker

The Dockerfile in the repository root produces an image containing only the dddserver binary. To start the server in a container and expose the default port:
docker build -t dddserver .
docker run -p 50055:50055 dddserver

Build docs developers (and LLMs) love