Skip to content
@wpilibsuite

WPILib Suite

The official repositories of the WPILib Suite, a robotics software library used in the FIRST Robotics Competition

What is WPILib?

The WPI Robotics Library (WPILib) is the standard software library provided for teams to write code for their FIRST® Robotics Competition (FRC®) robots. A software library is a collection of code that can be imported into and used by other software. WPILib contains a set of useful classes and subroutines for interfacing with various parts of the FRC control system (such as sensors, motor controllers, and the driver station), as well as an assortment of other utility functions.

Supported languages

There are two versions of WPILib, one for each of the two officially-supported text-based languages: WPILibJ for Java, and WPILibC for C++. A considerable effort is made to maintain feature-parity between these two languages - library features are not added unless they can be reasonably supported for both Java and C++, and when possible the class and method names are kept identical or highly-similar. While unofficial community-built support is available for some other languages, notably python, the main WPILib project only supports Java and C++. Java and C++ were chosen for the officially-supported languages due to their appropriate level-of-abstraction and ubiquity in both industry and high-school computer science classes.

In general, C++ offers better high-end performance, at the cost of increased user effort (memory must be handled manually, and the C++ compiler does not do much to ensure user code will not crash at runtime). Java offers lesser performance, but much greater convenience. New/inexperienced users are strongly encouraged to use Java.

Source code and documentation

The primary documentation for WPILib is the FIRST Robotics Competition Control System Documentation.

WPILib is an open-source library - the entirety of the library source code is in the allwpilib mono-repo. The Java and C++ source code can be found in the WPILibJ and WPILibC source directories:

While users are strongly encouraged to read the source code to resolve detailed questions about library functionality, more-concise documentation can be found on the official documentation pages for WPILibJ and WPILibC:

Installation

WPILib has a unified installer. See the WPILib Installation Guide for step-by-step installation instructions.

Pinned

  1. allwpilib Public

    Official Repository of WPILibJ and WPILibC

    C++ 677 406

  2. WPILibPi Public

    Forked from RPi-Distro/pi-gen

    WPILib Raspberry Pi images designed for FRC (formerly FRCVision)

    Shell 76 35

  3. frc-docs Public

    Official FRC Documentation powered by Read the Docs

    JavaScript 104 166

  4. A modern dashboard for FRC

    Java 71 56

  5. Generate C++ or Java FRC programs

    Java 30 25

  6. GradleRIO Public

    The official gradle plugin for the FIRST Robotics Competition

    Java 245 67

Repositories