#vex-robotics #vex-v5 #vex

no-std vex-sdk

FFI bindings to VEXos system APIs

45 releases (27 breaking)

0.28.0 Nov 6, 2025
0.26.0 Nov 29, 2024
0.17.0 May 28, 2024
0.5.0 Mar 31, 2024

#3 in Robotics

Download history 8006/week @ 2025-09-27 8092/week @ 2025-10-04 9101/week @ 2025-10-11 9669/week @ 2025-10-18 9941/week @ 2025-10-25 9672/week @ 2025-11-01 9301/week @ 2025-11-08 8826/week @ 2025-11-15 10020/week @ 2025-11-22 10506/week @ 2025-11-29 12294/week @ 2025-12-06 24696/week @ 2025-12-13 21327/week @ 2025-12-20 19418/week @ 2025-12-27 27737/week @ 2026-01-03 25825/week @ 2026-01-10

98,083 downloads per month
Used in 23 crates (13 directly)

MIT license

54KB
1K SLoC

vex-sdk

This crate contains raw C-level bindings to VEX's system APIs.

You can use this crate by adding it to your project's Cargo.toml with cargo add vex-sdk.

Linkage

[!NOTE] If you are using a higher-level library such as vexide, this is likely already handled for you!

vex-sdk provides declarations for functions included in VEX's platform SDKs, but doesn't link to any runtime library itself. Your project will need an implementation of these functions to compile properly.

One option is to depend on vex-sdk-jumptable, an open-source reimplementation of VEX's runtime library, then bring it into scope in your project:

// Bring runtime library into scope
use vex_sdk_jumptable as _;

fn main() { /* ... */ }

Alternatively, you may wish to provide your own SDK or link to an official SDK distributed by VEX. To do this, use a build script to add the SDK into your link search path, then link to libv5rt.a or the equivalent for your platform. The vex-sdk-build crate provides functionality to do all of this for you automatically (including downloading SDKs from VEX's servers).

Dependencies