| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-07-28 | 5.9 kB | |
| v2.0.0-rc.13 source code.tar.gz | 2026-07-28 | 4.4 MB | |
| v2.0.0-rc.13 source code.zip | 2026-07-28 | 4.6 MB | |
| Totals: 3 Items | 9.0 MB | 1 | |
๐ฏ Execution provider clarity
EP structs like ep::CUDA are now compile-time gated behind their respective Cargo feature flags. The EP feature flags only modifying runtime behavior was a common pain point, and this change brings ort in line with, like, every other Rust crate in existence.
โ ๏ธ ort will now throw an error at link time if download-binaries is enabled and no binaries contain all of the requested EPs. Previously, if you enabled a nonsensical combination like cuda + coreml, ort would silently fall back to a CPU-only build. This caused great confusion as the only indicator of what went wrong was in log messages that don't show by default. A new lax-feature-matching Cargo feature will fallback to the closest fit instead of erroring.
๐ ONNX Runtime 1.28
rc.13 skips ahead 4 ONNX Runtime versions to v1.28, bringing new operator support, bug & security fixes, and performance improvements.
โ๏ธ No CUDA 12
rc.13 only ships CUDA 13 binaries, as ONNX Runtime has deprecated CUDA 12.
๐งฉ Custom operator ergonomics
Custom operators have been reworked to have a more Rusty interface:
:::diff
struct MyOperator;
impl Operator for MyOperator {
+ type Kernel<'attr> = ort::operator::BoxedKernel<'attr>;
fn name(&self) -> &str {
"MyOperator"
}
- fn inputs(&self) -> Vec<OperatorInput> {
- vec![OperatorInput::required(TensorElementType::Float32), OperatorInput::required(TensorElementType::Float32)]
+ fn inputs(&self) -> impl IntoIterator<Item = OperatorInput> {
+ [OperatorInput::required(TensorElementType::Float32), OperatorInput::required(TensorElementType::Float32)]
}
- fn outputs(&self) -> Vec<OperatorOutput> {
- vec![OperatorOutput::required(TensorElementType::Float32)]
+ fn outputs(&self) -> impl IntoIterator<Item = OperatorOutput> {
+ [OperatorOutput::required(TensorElementType::Float32)]
}
- fn create_kernel(&self, _: &KernelAttributes) -> ort::Result<Box<dyn Kernel>> {
- Ok(Box::new(|ctx: &KernelContext| {
+ fn create_kernel<'attr>(&self, _: &KernelContext<'attr>) -> ort::Result<Self::Kernel<'attr>> {
+ Ok(Box::new(|ctx: &ComputeContext| {
...
}))
}
}
โน๏ธ Custom diagnostic messages
ort now uses the wonderful #[diagnostic] attributes to drastically improve the clarity of commonly encountered errors.
โ๏ธ Miri-approved
Test coverage was expanded and ort was ran against Miri, and a few unsoundness bugs were fixed.
โจ Other features
- https://github.com/pykeio/ort/commit/8db51e7684f36615fb2a822f90e235a70d765b53 Add VSINPU EP
- https://github.com/pykeio/ort/commit/5688cce9a01f17fa88b613f603766e2b6052304d (
ort-web): Allow creating tensors from images. - https://github.com/pykeio/ort/commit/726dc7c47d8e0b2548885f796062b0b6d32d892e Expose the DirectML EP API.
- https://github.com/pykeio/ort/commit/5e669f6944911bb3fc34014680ec91f74cee30a0 Support string array operator attributes
- https://github.com/pykeio/ort/commit/5f99738620a1ee5d40aca7d90ab65bc4d295538f Support float16 tensor usage with the native
f16type on nightly Rust - https://github.com/pykeio/ort/commit/62ad710a5861b1722e9041ae730837547f85375e (
ort-candle): Updatecandleto 0.11 - https://github.com/pykeio/ort/commit/d5dc28f2f50c96d0e0cdcc668f3a23462f2b94dc (
ort-tract): Updatetractto 0.23
๐ง Other fixes
- https://github.com/pykeio/ort/commit/d5eb59f2ff5a597e0666b2d0cb8a901ffe54742e Committing a session which has a map input/output will no longer panic.
- https://github.com/pykeio/ort/commit/d2838f8601b92be7fcbf068f7d50c8d471d7cab2 Fixed the fallback behavior when
ort-syscan't create a system-wide cache dir. - https://github.com/pykeio/ort/commit/26f656b9a5156fbe0ebd9d580172a66f2666c98a Allow
DynTensorto beCloned. - https://github.com/pykeio/ort/commit/e336d6bf05ebb8459ab61306c35c7c14701586aa Allow
0dimensions in tensors. - https://github.com/pykeio/ort/commit/14e9d29f49fa3c094f64cf35f0a1fc31bee1db7c Fix tensor byte size calculation for 8-bit floating point types.
- https://github.com/pykeio/ort/commit/7bdabccd6425b32c3a7237614d648cc3f51e3436 Allow
try_extract_scalarto work on tensors with shape[1]. - https://github.com/pykeio/ort/commit/85f6074a48ba20a35f7430eafa7760b3d7e70da0 Fixed retrieving string attributes in custom operator shape inference contexts.
- https://github.com/pykeio/ort/commit/17ed727770746447620d0d76e9893ed1a3d7c221 Don't deadlock when
load-dynamicfails. - https://github.com/pykeio/ort/commit/a5ee3ad10112261885609a90b6d9a19a0821b6a6 Don't force
stdforndarraywhenstdis enabled. - https://github.com/pykeio/ort/commit/d5356057f0729365d04f684c5566c9a6694d1856 Allow
copy-dylibsto work independently ofdownload-binaries. - https://github.com/pykeio/ort/commit/49413ba5aea0b673d93ba1fd801766fbde4b1a78 Rerun
build.rson macOS when Xcode updates. - https://github.com/pykeio/ort/commit/bb205750e9438b808f8792a93c4247c3d81017f4 Warn when AVX-2 isn't supported when using pyke binaries.
- https://github.com/pykeio/ort/commit/9c840a386acc808aaaf5ac28ae0fc13ee164678c Support FreeBSD.
- https://github.com/pykeio/ort/commit/01f377b817ea1da03796ec06ef7d45ce66ddca35 Support Mac Catalyst.