# What changed in kornia-rs

> 72 changes in kornia-rs 0.1 to 0.2 from its official release notes, upgrade guides and advisories: 26 breaking, 5 security, 16 new APIs and options. Each one cited. Sources checked 2026-10-23. HTML: https://unstale.sh/pypi/kornia-rs/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## kornia-rs 0.2

### Breaking changes

- Several error enums gained variants, so code matching on those enums may need to account for additional cases. (0.2.0) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.2.0)
- Tensor::get_unchecked and TensorView::get_unchecked are now unsafe functions, requiring callers to uphold their safety requirements. (0.2.0) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.2.0)
- Image loses its compile-time allocator type parameter; for example, Image<f32, 3, CpuAllocator> becomes Image<f32, 3>. (0.2.0) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.2.0)
- left_map() is replaced by left_maps(). (0.2.0) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.2.0)
- permute_axes now returns Result, so callers must handle possible errors. (0.2.0) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.2.0)
- f32 remap now zero-fills out-of-range samples. (0.2.0) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.2.0)
- f32 resize_native now samples on the half-pixel grid, changing pixel values. (0.2.0) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.2.0)
- right_map() is replaced by right_maps(). (0.2.0) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.2.0)
- Tensor loses its compile-time allocator type parameter. (0.2.0) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.2.0)

### New APIs and options

- A C++ macro with value 0 or 1 indicates whether the build is a pre-release, enabling #if checks. (0.2.0) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.2.0)
- The pre-release tag is exposed separately as a C++ macro, with an empty value on a release. (0.2.0) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.2.0)

### Fixes and other changes

- The generated C++ version macro is now always an integer, avoiding pre-release expansions that break numeric use. (0.2.0) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.2.0)

## kornia-rs 0.1

### Breaking changes

- as_contiguous now returns Result, so callers must handle possible errors. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.2.0), [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Out-of-range samples now produce zero; remap dispatches to CUDA when images and maps are device-resident. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Rejects mismatched layouts, preventing construction from incompatible raw tensor parts. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- GStreamer URLs, device paths, and file paths can no longer inject pipeline elements; file locations are set as element properties, which also supports Windows paths. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- GStreamer pipeline description helpers now return Result, so callers must handle possible errors. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.2.0), [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Replaces left_map() and returns the x/y planes consumed by remap_u8. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Rejects non-permutations and returns Result, so callers must handle invalid axis orderings. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- PNG and TIFF decoders reject mismatched bit depth and channel counts. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- ReconstructionConfig is split out of CalibConfig. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.2.0), [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Replaces right_map() and returns the x/y planes consumed by remap_u8. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Source coordinates in the [w-1, w) band now clamp-sample the edge texel instead of producing black. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- rectify_left becomes into-style, changing how callers provide or receive the rectified output. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.2.0), [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- rectify_right becomes into-style, changing how callers provide or receive the rectified output. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.2.0), [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Now an unsafe function, requiring callers to acknowledge the memory-safety risks of unchecked tensor access. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- TensorStorage::layout now returns Result, so callers must handle possible errors. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.2.0), [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Now an unsafe function, requiring callers to acknowledge the memory-safety risks of unchecked tensor access. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Rejects mismatched layouts when converting a Tensor3 into an Image. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)

### Security

- Arrow imports are read-only and validate layouts, preventing unsafe mutation or invalid imported layouts. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- C++ bindings now check dimensions for overflow and reject null pointers at the FFI boundary. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Decoders cap declared images at 2^30 pixels and allocate fallibly, so decompression bombs no longer abort the process. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Fixes out-of-bounds reads and writes in the image-processing operation. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- No longer writes out of bounds on strided tensors. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)

### New APIs and options

- Adds an allocator for CUDA managed memory. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Tensors and images can borrow host buffers zero-copy. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Adds a publishable crate for multi-camera extrinsic calibration from an AprilTag grid and optional natural-feature tracks using bundle adjustment. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Adds write-combined pinned host memory for CPU-to-GPU streaming. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Colour-check APIs are now available in the Python bindings. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Histogram APIs are now available in the Python bindings. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Pyramid APIs are now available in the Python bindings. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Rectifies a device frame using the CUDA stereo rectifier without copying it to the CPU. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Rectifies a device frame using the CUDA stereo rectifier without copying it to the CPU. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Adds a temporal-delta variant of RVL. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Adds a preset for video capture calibration. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Creates a CudaStereoRectifier that keeps both eyes' maps device-resident for rectifying device frames. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Adds CUDA managed memory support. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Adds a Python option to enable SPRT early rejection in RANSAC. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)

### Performance

- f32 and u8 remap dispatch to CUDA when images and maps are device-resident. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Adds the run-length phase, improving compression on live depth from 3.0× to 5.7×. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)

### Behavior and default changes

- Integral-image filters now run on CPU and GPU. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Laplacian filters now run on CPU and GPU. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Element-wise and reduction operations now dispatch according to the tensor's CPU or GPU memory domain. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Blending now uses Q10 fixed point. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- The turbojpeg feature is enabled by default, making the Python-facing turbojpeg symbols available on default builds. (0.1.14) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.14)

### Fixes and other changes

- Fixes a data race in Canny's parallel hysteresis. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Fixes panics on empty images. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Fixes handling of read-only or aliased output arrays in Python bindings. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Fixes handling of non-contiguous or misaligned numpy arrays in the Python bindings. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Fixes size overflow in the Python binding. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- CPU (NEON) and CUDA implementations reproduce OpenCV cv::SIFT bit-for-bit, with deterministic keypoint and matcher output order. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Now forms a true inverse pair with Sim3::log. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Now forms a true inverse pair with Sim3::exp. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- V4L2 no longer re-queues a buffer still referenced by a live frame. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- Python wheels are now available for Windows ARM64. (0.1.15) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.15)
- The Python-facing JPEG turbo decode function is now available. (0.1.14) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.14)
- The Python-facing JPEG turbo encode function is now available. (0.1.14) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.14)
- The Python-facing JPEG turbo decoder class is now available. (0.1.14) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.14)
- The Python-facing JPEG turbo encoder class is now available. (0.1.14) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.14)
- Using this flag now skips the libjpeg-turbo cmake build instead of forcing it on. (0.1.14) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.14)
- The Python-facing JPEG turbo image-reading function is now available. (0.1.14) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.14)
- The Python-facing JPEG turbo image-writing function is now available. (0.1.14) — [release notes](https://github.com/kornia/kornia-rs/releases/tag/v0.1.14)
