Skip to content

An open-source PROS library that brings the Command-Based Programming paradigm to V5 Robotics in an intuitive way and memory-safe way.

License

Notifications You must be signed in to change notification settings

SomewhatMay/uvlib

Repository files navigation

Banner

GitHub Workflow Status GitHub release (latest by date) License GitHub code size GitHub issues GitHub issues

uvlib is an open-source PROS library that brings the Command-Based Programming paradigm to V5 Robotics in an creative and intuitive way.

  • Declarative: You're more than just a programmer; you're a designer and an engineer. Just explain 'the what' and let uvlib worry about 'the how'.
  • Command-Based: Rediscover the DRY principle—the oldest, and perhaps most important, programming concept—all over again in PROS. Keep your code clean, organized, and reusable across multiple seasons.
  • Extensible: Built to grow with your projects. Easily integrate new features, customize behaviors, and adapt uvlib to your evolving needs.

Important

uvlib is still heavily under development. Expect lots of bugs, drastic changes, and unexpected instability. Please create an issue if you encounter any bugs.

📦 Installation

✅ Automatic Installation (recommended)

Installing is as simple as 1, 2, and 3:

pros c add-depot uvlib https://raw.githubusercontent.com/SomewhatMay/uvlib/refs/heads/depot/stable.json # adds the remote depot
pros c apply uvlib # installs uvlib into your current project
  1. Start coding!

⬇️ Manual installation (not recommended)

  1. Download the latest release from GitHub releases
  2. Unzip the compressed archive
  3. Copy and paste the contents of the file into your project directory

🔄️ Updating

If you've already got uvlib and would like to switch to the latest version, simply run:

pros c update

❌ Uninstalling

We're sorry to see you go. If you've encountered an problem, be sure to create an issue. To uninstall, simply run:

pros c uninstall uvlib

📖 Documentation

Documentation is currently under work. Every class and method is well-documented; see the header files in include/uvlib/.

🔎 Example Code

To see very basic example robot code with a Drivetrain subsystem, commands, and Controller triggers, see the example.cpp.

🔥 Inspiration

Much of this project was inspired by WPILib and its Command-Based Programming structure. WPILib is the library trusted by hundreds of FIRST Robotics teams worldwide. Many of the design decisions were made to align with WPILib's implementation. You can learn more about the paradigm here.

License

This project is licensed under the Apache-2.0 license. See LICENSE for further details.

This project, its contributors, and its use of any trademarks or registered trademarks are not partnered with PROS, Purdue University, VEX Robotics (VRC), FIRST Robotics Competition (FRC), WPILib Institute, or any affiliated organizations. All trademarks and registered trademarks are the property of their respective owners and are used with proper attribution for educational and non-commercial purposes only. No endorsement by the aforementioned organizations is implied.

About

An open-source PROS library that brings the Command-Based Programming paradigm to V5 Robotics in an intuitive way and memory-safe way.

Topics

Resources

License

Security policy

Stars

Watchers

Forks