18 releases (5 breaking)

Uses new Rust 2024

new 0.10.0 May 7, 2026
0.10.0-pre.2 Mar 2, 2026
0.9.0-pre.6 Dec 18, 2025
0.9.0-pre.3 Nov 24, 2025
0.6.0 Jul 18, 2025

#16 in #opcode

Download history 14987/week @ 2026-01-15 14142/week @ 2026-01-22 15707/week @ 2026-01-29 15509/week @ 2026-02-05 13784/week @ 2026-02-12 13389/week @ 2026-02-19 14053/week @ 2026-02-26 13671/week @ 2026-03-05 14988/week @ 2026-03-12 15844/week @ 2026-03-19 15426/week @ 2026-03-26 15317/week @ 2026-04-02 13939/week @ 2026-04-09 16976/week @ 2026-04-16 16677/week @ 2026-04-23 20323/week @ 2026-04-30

69,630 downloads per month
Used in 301 crates (5 directly)

MIT/Apache

470KB
10K SLoC

CubeCL Intermediate Representation

The intermediate representation produced by the CubeCL frontend, and consumed by the backends.

Reflection

Operations must implement OperationReflect to allow for reflecting the OpCode and argument list. In most cases this can be derived, but for operations that take arguments other than Variable, the OperationCode derive is available. This derive generates only the opcode and a corresponding match, while leaving the remaining reflection up to manual implementation. To make a parameter struct reflectable, use the OperationArgs derive.

Mathematical properties

Mathematical properties like pure and commutative are marked directly on each operation using the `#[operation] helper attribute.

Dependencies

~6.5–9MB
~144K SLoC