WPILib publishes its built artifacts to Maven repositories for use by downstream projects. This guide explains the repository locations, artifact naming conventions, classifiers, and dependency structure.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/wpilibsuite/allwpilib/llms.txt
Use this file to discover all available pages before exploring further.
Repositories
WPILib provides two primary repositories:Release Repository
Development Repository
Artifact Types
WPILib provides two base types of artifacts: Java artifacts and native (C++) artifacts.Java Artifacts
Java artifacts are usually published asjar files:
- Base artifact: No classifier - contains the compiled Java classes
- Sources:
-sourcesclassifier - contains the source code - Javadocs:
-javadocclassifier - contains the generated Javadoc
-java extension.
Example:
Native (C++) Artifacts
Native artifacts are usually published aszip files:
- Sources:
-sourcesclassifier - contains the source code - Headers:
-headersclassifier - contains the header files - Platform binaries: Platform-specific classifier (e.g.,
windowsx86-64) - contains binaries for that platform
Platform Classifiers
Platform classifiers use the format{os}{arch} with optional suffixes:
- Static libraries: Append
staticto the classifier - Debug builds: Append
debugto the classifier
windowsx86-64- Windows x86-64 shared library (release)windowsx86-64static- Windows x86-64 static library (release)windowsx86-64staticdebug- Windows x86-64 static library (debug)linuxx86-64- Linux x86-64 shared libraryosxuniversal- macOS universal binary
Platform binary artifacts never contain headers. You always need the
-headers classifier to get those.-cpp extension.
Examples:
JNI Components
If a library has both Java and C++ components with JNI, the native artifact will have a shared library containing JNI entrypoints alongside the C++ shared library. This JNI shared library will have ajni suffix in the file name.
Provided Artifacts
All artifacts are based atedu.wpi.first.artifactname in the repository.
Core Libraries
wpiutil
wpimath
- wpiutil
wpinet
- wpiutil
wpiunits
Networking
ntcore
- wpiutil
- wpinet
Hardware Abstraction
hal
- wpiutil
Vision
cscore
- opencv
- wpinet
- wpiutil
cameraserver
- ntcore
- cscore
- opencv
- wpinet
- wpiutil
apriltag
- wpiutil
- wpimath
Robot Libraries
wpilibj (Java)
- hal
- cameraserver
- ntcore
- cscore
- wpinet
- wpiutil
wpilibc (C++)
- hal
- cameraserver
- ntcore
- cscore
- wpimath
- wpinet
- wpiutil
wpilibNewCommands
- wpilibc (C++) or wpilibj (Java)
- hal
- cameraserver
- ntcore
- cscore
- wpimath
- wpinet
- wpiutil
GUI Libraries
wpigui
- imgui
glass/libglass
- wpiutil
- wpimath
- wpigui
glass/libglassnt
- wpiutil
- wpinet
- ntcore
- wpimath
- wpigui
halsim
- wpiutil
- wpinet
- ntcore
- wpimath
- wpigui
- libglass
- libglassnt
Third Party Artifacts
WPILib provides builds of the following third-party software. All third-party artifacts are based atedu.wpi.first.thirdparty.frcYEAR in the repository.
- apriltaglib - AprilTag detection library
- googletest - Google Test framework
- imgui - Dear ImGui graphical interface library
- opencv - OpenCV computer vision library
- libssh - SSH library