work in progress
List of current components
Component | Version |
---|---|
racelogger |
v0.18.0 |
iracelog-web |
v0.31.0 |
iracelog-service-manager-go |
v0.26.0 |
iracelog-graphql |
v0.4.0 |
iracelog-cli |
v0.4.0 |
This module is responsible for extracting the data from the local running iRacing simulation software.
Racelogger is the data provider for the whole project.
Repository |
|
Language |
Go |
Tech |
This is the web frontend. It is used to show race data for both live and archived events.
Repository:
Repository |
|
Language |
TypeScript |
Tech |
This module is the main entry point to manage the backend services. It recieves messages from the racelogger and is responsible for the following tasks
-
archive the recieved messages from the racelogger
-
compute additional stats (such as stint durations, driver seat times, driver laps)
-
database migration
Repository |
|
Language |
Go |
Tech |
gRPC, buf.build, ConnectRPC, OpenTelemetry, Postgresql, Migrate |
Command line tool used for administrative tasks which are not yet available via web frontend.
This tool is also used for stress tests during development.
Repository |
|
Language |
Go |
Tech |
This component provides the search functionality for the iRacelog.
Repository |
|
Language |
Go |
Tech |
Component | Version |
---|---|
iracelog-wamp-router |
v0.0.2 |
racelogger (python) |
v0.8.0 |
iracelog-service-manager |
v0.6.1 |
iracelog-analysis-service |
v0.3.1 |
crossbar |
v22.6.1 |
racelogctl |
v0.4.0 |
iracelog-service-manager was replaced by the Go variant iracelog-service-manager-go
iracelog-analysis-service was put out of order. Its tasks were integrated in iracelog-service-manager-go
crossbar was replaced by the Go variant iracelog-wamp-router
racelogger was replaced by the Go variant go-racelogger
racelogctl was replaced by the gRPC variant iracelog-cli
iracelog-wamp-router was no longer needed with the move from WAMP to gRPC
This module is the replacement for Crossbar.
It serves as the central point for distributing messages between the components according to the WAMP specification.
While crossbar provides a lot of features we actually don’t need much of them. The Nexus library in Go fullfills our needs and comes with a much smaller footprint.
Repository |
|
Language |
Go |
Tech |
This module is responsible for extracting the data from the local running iRacing simulation software. The racelogger uses the python module pyirsdk to get access to the iRacing telemetry data. Racelogger is the data provider for the whole project.
Repository |
|
Language |
Python |
Tech |
This module is the main entry point to manage the backend services. It recieves messages from the racelogger and is responsible for the distribution to other backend components, such as
-
archive the recieved messages from the racelogger
-
compute additional stats (such as stint durations, driver seat times, driver laps)
-
gateway to linked subcomponents
Repository |
|
Language |
Python |
Tech |
This module is responsible for processing incoming WAMP-messages from the racelogger. During live events it holds the current race state (including extra computations) and stores it periodically into the database.
Repository |
|
Language |
TypeScript |
Tech |
Command line tool used for administrative tasks which are not yet available via web frontend.
This tool is also used for stress tests during development.
Repository |
|
Language |
Go |
Tech |
This repository contains samples for deploying the application in the following environments
-
docker via docker compose
-
kubernetes via Helm charts
Caution
|
The samples in this repository are designed for local test environments. |
Repository |
|
Tech |
This setup is supposed for users who are familar with Linux servers. The ansible playbooks can be used to setup the application on IaaS (Infrastructure as a Service) machines.
The sample uses Hetzner (for IaaS) and Netcup (for domain services), but you may adjust the playbooks for other providers.
Repository |
|
Language |
Ansible, Python |
Tech |
This application was inspired by timing71.org.