pypi / kornia-rs
kornia-rs
What changed in kornia-rs 0.1 to 0.2, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-23.
26 breaking5 security16 new APIs and options2 performance5 behavior and defaults18 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initkornia-rs 0.212 changes
Breaking changes 9
Several error enums gained variants, so code matching on those enums may need to account for additional cases.
Tensor::get_unchecked and TensorView::get_unchecked are now unsafe functions, requiring callers to uphold their safety requirements.
Image loses its compile-time allocator type parameter; for example, Image<f32, 3, CpuAllocator> becomes Image<f32, 3>.
left_map() is replaced by left_maps().
permute_axes now returns Result, so callers must handle possible errors.
f32 remap now zero-fills out-of-range samples.
f32 resize_native now samples on the half-pixel grid, changing pixel values.
right_map() is replaced by right_maps().
Tensor loses its compile-time allocator type parameter.
New APIs and options 2
A C++ macro with value 0 or 1 indicates whether the build is a pre-release, enabling #if checks.
The pre-release tag is exposed separately as a C++ macro, with an empty value on a release.
Fixes and other changes 1
The generated C++ version macro is now always an integer, avoiding pre-release expansions that break numeric use.
kornia-rs 0.160 changes
Breaking changes 17
as_contiguous now returns Result, so callers must handle possible errors.
Out-of-range samples now produce zero; remap dispatches to CUDA when images and maps are device-resident.
Rejects mismatched layouts, preventing construction from incompatible raw tensor parts.
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.
GStreamer pipeline description helpers now return Result, so callers must handle possible errors.
Replaces left_map() and returns the x/y planes consumed by remap_u8.
Rejects non-permutations and returns Result, so callers must handle invalid axis orderings.
PNG and TIFF decoders reject mismatched bit depth and channel counts.
ReconstructionConfig is split out of CalibConfig.
Replaces right_map() and returns the x/y planes consumed by remap_u8.
Source coordinates in the [w-1, w) band now clamp-sample the edge texel instead of producing black.
rectify_left becomes into-style, changing how callers provide or receive the rectified output.
rectify_right becomes into-style, changing how callers provide or receive the rectified output.
Now an unsafe function, requiring callers to acknowledge the memory-safety risks of unchecked tensor access.
TensorStorage::layout now returns Result, so callers must handle possible errors.
Now an unsafe function, requiring callers to acknowledge the memory-safety risks of unchecked tensor access.
Rejects mismatched layouts when converting a Tensor3 into an Image.
Security 5
Arrow imports are read-only and validate layouts, preventing unsafe mutation or invalid imported layouts.
C++ bindings now check dimensions for overflow and reject null pointers at the FFI boundary.
Decoders cap declared images at 2^30 pixels and allocate fallibly, so decompression bombs no longer abort the process.
Fixes out-of-bounds reads and writes in the image-processing operation.
No longer writes out of bounds on strided tensors.
New APIs and options 14
Adds an allocator for CUDA managed memory.
Tensors and images can borrow host buffers zero-copy.
Adds a publishable crate for multi-camera extrinsic calibration from an AprilTag grid and optional natural-feature tracks using bundle adjustment.
Adds write-combined pinned host memory for CPU-to-GPU streaming.
Colour-check APIs are now available in the Python bindings.
Histogram APIs are now available in the Python bindings.
Pyramid APIs are now available in the Python bindings.
Rectifies a device frame using the CUDA stereo rectifier without copying it to the CPU.
Rectifies a device frame using the CUDA stereo rectifier without copying it to the CPU.
Adds a temporal-delta variant of RVL.
Adds a preset for video capture calibration.
Creates a CudaStereoRectifier that keeps both eyes' maps device-resident for rectifying device frames.
Adds CUDA managed memory support.
Adds a Python option to enable SPRT early rejection in RANSAC.
Performance 2
f32 and u8 remap dispatch to CUDA when images and maps are device-resident.
Adds the run-length phase, improving compression on live depth from 3.0× to 5.7×.
Behavior and default changes 5
Integral-image filters now run on CPU and GPU.
Laplacian filters now run on CPU and GPU.
Element-wise and reduction operations now dispatch according to the tensor's CPU or GPU memory domain.
Blending now uses Q10 fixed point.
The turbojpeg feature is enabled by default, making the Python-facing turbojpeg symbols available on default builds.
Fixes and other changes 17
Fixes a data race in Canny's parallel hysteresis.
Fixes panics on empty images.
Fixes handling of read-only or aliased output arrays in Python bindings.
Fixes handling of non-contiguous or misaligned numpy arrays in the Python bindings.
Fixes size overflow in the Python binding.
CPU (NEON) and CUDA implementations reproduce OpenCV cv::SIFT bit-for-bit, with deterministic keypoint and matcher output order.
Now forms a true inverse pair with Sim3::log.
Now forms a true inverse pair with Sim3::exp.
V4L2 no longer re-queues a buffer still referenced by a live frame.
Python wheels are now available for Windows ARM64.
The Python-facing JPEG turbo decode function is now available.
The Python-facing JPEG turbo encode function is now available.
The Python-facing JPEG turbo decoder class is now available.
The Python-facing JPEG turbo encoder class is now available.
Using this flag now skips the libjpeg-turbo cmake build instead of forcing it on.
The Python-facing JPEG turbo image-reading function is now available.
The Python-facing JPEG turbo image-writing function is now available.