Sirigo is a command-line tool for interacting with SIRI servers. Since the protocols and messages are quite similar, it also works with VDV453 & VDV454 servers.
If you want to learn more about the architecture and framework decisions, check the architecture documentation.
Download the latest release zip from the releases page. Unzip it and start the sirigo binary in a shell.
Make sure you have a folder with templates. You can copy them from the templates/ folder.
Here are the possible CLI parameters:
./bin/sirigo --helpRunning the TUI:
Configure the URL where the SIRI server is listening and specify which client reference you want to use.
./bin/sirigo --templates ./templates --url https://siri.example.com --clientref myclientTemplate files are written with Go template and must be stored as .xml files.
Sirigo provides the following variables and functions you can use:
| name | description | example |
|---|---|---|
| ClientRef | Variable with the configured client reference | <ConsumerRef>{{ .ClientRef }}</ConsumerRef> |
| Now | Variable with the current time as a Go time | use this with the dateTime function |
| dateTime | Function to convert Go times into xs:dateTime | <RequestTimestamp>{{ dateTime .Now }}</RequestTimestamp> |
| addTime | Function to add durations to a time | <InitialTerminationTime>{{ dateTime (addTime .Now "2h") }}</InitialTerminationTime> |
| URL path comment | Helper to set the URL path where a client request should be sent to. Add this xml comment in the template | <!-- path: /siri/et.xml --> |
You can open a GitHub issue.
- Have a TUI that can communicate with a SIRI/VDV server
- Log requests and responses
This is a test project and contributions are not currently planned. However, contributions are not forbidden — feel free to open an issue to discuss your ideas.
You need Go 1.25 installed.
For development check the Makefile how to run format, linter and the tests.
For the linter you need golangci-lint installed.
TL;DR
docker compose up
make check # fmt, lint, test
go run ./...Starting the SIRI server mock:
docker compose upSee the config in the wiremock/ folder if you want to change something.
To simulate a SIRI server request send it via curl:
curl -X POST -H "content-type: text/xml" --data-binary "<xml>Test</xml>" localhost:8000This project is licensed under Mozilla Public License 2.0.
See LICENSE.
