Libraries

t — draft: true #

Why are there so many different libraries? #

Road Runner is really a set of libraries.

  • core has the base types and math. It only depends on the Kotlin standard library, and there’s nothing tying it to FTC. Most users will probably want to interact with RR through actions, though this is available for users that only need to integrate at a low level.

  • actions builds an asychronous programming system on top of core that’s designed to run with FTC Dashboard. However, it only depends on the dashboard core library and not the full dashboard board module (with its transitive dependence on the FTC SDK). This is the best target for GUIs and other tools that interact with RR offline (not in the Robot Controller app).

  • ftc bundles together all of the code that depends on the FTC SDK, including tuning utilities and (transitively) full FTC dashboard. This is target to depend on in TeamCode.

  • playground (TODO: anything to say here?)

The libraries are hosted in separate repositories. core and actions are in the [main repo](TODO: link), while ftc is in its own [FTC SDK project](TODO: link).