https://github.com/adnanademovic/simetry
Rust library for interfacing with telemetry of various racing and driving sims
https://github.com/adnanademovic/simetry
american-truck-simulator assetto-corsa assetto-corsa-competizione assettocorsa euro-truck-simulator-2 iracing rfactor2 rust sim-racing simracing truck-simulator
Last synced: 9 months ago
JSON representation
Rust library for interfacing with telemetry of various racing and driving sims
- Host: GitHub
- URL: https://github.com/adnanademovic/simetry
- Owner: adnanademovic
- License: mit
- Created: 2023-01-12T12:54:50.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-02-16T12:01:55.000Z (over 2 years ago)
- Last Synced: 2025-08-25T09:36:28.541Z (10 months ago)
- Topics: american-truck-simulator, assetto-corsa, assetto-corsa-competizione, assettocorsa, euro-truck-simulator-2, iracing, rfactor2, rust, sim-racing, simracing, truck-simulator
- Language: Rust
- Homepage:
- Size: 194 KB
- Stars: 36
- Watchers: 3
- Forks: 12
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# simetry
Rust library for interfacing with telemetry of various racing and driving sims.
The library is under active development, and the generic interface for
handling all sims is yet to be designed.
Currently supported sims:
* iRacing
* Assetto Corsa
* Assetto Corsa Competizione
* rFactor 2 (extra steps for enabling described below)
* DiRT Rally 2.0
* Euro Truck Simulator 2 (extra steps for enabling described below)
* American Truck Simulator (extra steps for enabling described below)
Beyond that, an interface for a generic HTTP server exists, allowing you to easily emulate any sim
to see the functionality of your software that way, instead of having to run the sim and replicating
scenarios manually.
All implementations provide a `Client` which retries connections forever with `Client::connect()` and
generates its own `SimState`.
Besides that, iRacing provides a `DiskClient` for reading recorded telemetry data,
and `commands` for sending commands to iRacing.
Examples of capabilities are available in `examples`.
The most generic way of use is using `simetry::connect` to connect to whatever
sim is currently running with a generic client, and querying that way.
That generic way currently only supports some basic capabilities, and if you need more than what's
present there, you can use the interface of the individual sims.
## Extra Configuration
### rFactor 2
Requires adding the DLLs from https://github.com/TheIronWolfModding/rF2SharedMemoryMapPlugin.
### Euro Truck Simulator 2 and American Truck Simulator
Requires adding the DLLs from https://github.com/RenCloud/scs-sdk-plugin.
Alternatively supporting also https://github.com/Funbit/ets2-telemetry-server
via `simetry::truck_simulator::json_client::Client`.