NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1663 most downloaded on PyPI
tvm ffi
Last release 10 days ago
24 Sep 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 19 of 19 stable releases
5 versions withdrawn
withdrawn after publishing
11 months old
30 releases · first in 2025
One column per month.
chore(release): Version bump after release v0.1.14 by @cyx-6 in #796
Full Changelog: v0.1.14-post0...v0.1.14-post1
[EXTRA] Allow callers to disable unique in-place mutation by @tqchen in #776
Full Changelog: v0.1.14...v0.1.14-post0
[FEAT][RUST] Resolve reflected type methods and constructors from Rust by @Seven-Streams in #707
base and tighten rust_ident by @Seven-Streams in #742--check mode that reports stale stub files by @Seven-Streams in #746prefix directive by @Seven-Streams in #752Full Changelog: v0.1.13-post3...v0.1.14-rc5
[FEAT][RUST] Resolve reflected type methods and constructors from Rust by @Seven-Streams in #707
base and tighten rust_ident by @Seven-Streams in #742--check mode that reports stale stub files by @Seven-Streams in #746prefix directive by @Seven-Streams in #752Full Changelog: v0.1.13-post3...v0.1.14-rc5
[FEAT][RUST] Resolve reflected type methods and constructors from Rust by @Seven-Streams in #707
base and tighten rust_ident by @Seven-Streams in #742--check mode that reports stale stub files by @Seven-Streams in #746prefix directive by @Seven-Streams in #752Full Changelog: v0.1.13-post3...v0.1.14-rc4
StructuralMap needs identity state only to keep variables consistent
when
descent rewrites a definition. Callback results are separate: callbacks
run
at every occurrence in their selected pre- or post-descent position.
Make default C++ descent the sole owner of FreeVar and DAG remapping,
with
definitions binding rewritten results and unchanged simple definitions
left
absent. Keep the remap ABI stable and use an owned raw-pointer-keyed
store for
efficient identity lookups.
Adopt whole raw TVMFFIAny results by value while leaving
destructor-visible
slot moves pointer-based. Initialize owning Any storage member-wise so
GCC
retains scalar state and avoids an overlapping narrow-store/wide-reload
stall.
Update existing C++ and Python expectations in place and document
StructuralMap as post(D(pre)) alongside StructuralWalk's stateless tree
traversal. Rust remains unchanged for a follow-up.
[FEAT][RUST] Resolve reflected type methods and constructors from Rust by @Seven-Streams in #707
base and tighten rust_ident by @Seven-Streams in #742--check mode that reports stale stub files by @Seven-Streams in #746prefix directive by @Seven-Streams in #752Full Changelog: v0.1.13-post3...v0.1.14-rc3
[FEAT][RUST] Resolve reflected type methods and constructors from Rust by @Seven-Streams in #707
Full Changelog: v0.1.13-post3...v0.1.14-rc2
This PR refactor optimizes StructuralMap.
Expected payloads through structural-mutation hooksExpected/Unexpected.[FEAT][RUST] Resolve reflected type methods and constructors from Rust by @Seven-Streams in #707
Full Changelog: v0.1.13-post3...v0.1.14-rc1
[Rust] Decouple structural mutation dispatch from recursion control (…
[Rust] Decouple structural mutation dispatch from recursion control (…
[TEST] Relax shared DAG hash scaling threshold by @tqchen in #702
[FFI] Keep object optionals pointer-sized by @tqchen in #701
Full Changelog: v0.1.13-post1...v0.1.13-post2
fix(version): Keep source patch ahead of post releases by @tqchen in #698
Full Changelog: v0.1.13-post0...v0.1.13-post1
[FEAT][RUST] Support runtime-checked try_cast between ObjectRef types by @Seven-Streams in #684
Full Changelog: v0.1.13...v0.1.13-post0
[TEST] Relax test_shared_dag_hash_scaling_not_exponential ratio to 4x by @tqchen in #612
Full Changelog: v0.1.12...v0.1.13
chore(doc): Temp workaround missing pytorch docs by @junrushao in #577
$crate:: in tvm_ffi_dll_export_typed_func! and ensure! by @lucifer1004 in #590Full Changelog: v0.1.11...v0.1.12
[FEAT] Recursive DLPack container conversion for auto torch.Tensor return by @Kathryn-cat in #517
super().__init__() in init=False subclasses by @junrushao in #532tvm_ffi.dtype and tvm_ffi.Device as field type annotations by @junrushao in #540__init__ installation from __ffi_init__ TypeAttrColumn by @junrushao in #543frozen=True for immutable instances by @junrushao in #542__eq__/__ne__/__hash__ to Array, List, Map, Dict by @junrushao in #545tvm_ffi.dataclasses.* by @junrushao in #555Full Changelog: v0.1.10...v0.1.11
chore(release): Add GPG Key from Yong Wu by @yongwww in #474
@py_class decorator for Python-defined FFI dataclasses by @junrushao in #506py_class and field by @junrushao in #507structure= to structural_eq= by @junrushao in #509Full Changelog: v0.1.9...v0.1.10
chore(release): Version bump after release v0.1.8 by @junrushao in #404
tvm_ffi.Function.__init__" by @junrushao in #406#embed by @oraluben in #418Array<T> by @khj809 in #348compiled_kernel from Triton Call Directly by @sgjzfzzf in #423__copy__, __deepcopy__, and __replace__ for FFI objects by @junrushao in #438DefaultFactory support to field reflection by @junrushao in #446ffi.GetInvalidObject global function for MISSING singleton by @junrushao in #447field_static_type_index and add more tests by @junrushao in #456Full Changelog: v0.1.8...v0.1.9
[FIX] Fix the error propagation in the case of tensor arguments by @tqchen in #409
Full Changelog: v0.1.8-post1...v0.1.8-post2
[CUDA] Isolate unified api to only in cubin launcher by @tqchen in https://github.com/apache/tvm-ffi/pull/408
Full Changelog: https://github.com/apache/tvm-ffi/compare/v0.1.8-post0...v0.1.8-post1
chore(release): Version bump after release v0.1.8 by @junrushao in https://github.com/apache/tvm-ffi/pull/404
tvm_ffi.Function.__init__" by @junrushao in https://github.com/apache/tvm-ffi/pull/406Full Changelog: https://github.com/apache/tvm-ffi/compare/v0.1.8...v0.1.8-post0
[Feature] Support dynamic-style overload for FFI object types by @DarkSharpness in https://github.com/apache/tvm-ffi/pull/286
<tvm/ffi/tvm_ffi.h> by @junrushao in https://github.com/apache/tvm-ffi/pull/369StringViewToDLDataType_ with non-null-terminated strings by @khj809 in https://github.com/apache/tvm-ffi/pull/387tvm_ffi.Function.__init__ by @junrushao in https://github.com/apache/tvm-ffi/pull/395Full Changelog: https://github.com/apache/tvm-ffi/compare/v0.1.7...v0.1.8-rc0
chore(release): Bump version after v0.1.6 release by @junrushao in https://github.com/apache/tvm-ffi/pull/346
tvm_ffi.device(..., id) where id is numpy or torch scalar by @wrongtest-intellif in https://github.com/apache/tvm-ffi/pull/347--init-* flags by @junrushao in https://github.com/apache/tvm-ffi/pull/295tvm_ffi_configure_target and tvm_ffi_install by @junrushao in https://github.com/apache/tvm-ffi/pull/351main commits by @junrushao in https://github.com/apache/tvm-ffi/pull/353Full Changelog: https://github.com/apache/tvm-ffi/compare/v0.1.6...v0.1.7-rc0
bugfix: Fix clang-tidy warnings in test_c_env_api.cc by @junrushao in https://github.com/apache/tvm-ffi/pull/318
test_c_env_api.cc by @junrushao in https://github.com/apache/tvm-ffi/pull/318importlib.metadata to locate DSOs by @junrushao in https://github.com/apache/tvm-ffi/pull/306tvm-ffi-config --sourcedir broken in wheels by @junrushao in https://github.com/apache/tvm-ffi/pull/319keep_module_alive to load_module by @junrushao in https://github.com/apache/tvm-ffi/pull/334tvm_ffi.libinfo.load_lib_module by @junrushao in https://github.com/apache/tvm-ffi/pull/336Map.get by @junrushao in https://github.com/apache/tvm-ffi/pull/341Full Changelog: https://github.com/apache/tvm-ffi/compare/v0.1.5...v0.1.6
[Feature] Support vanilla C++ STL in FFI. by @DarkSharpness in https://github.com/apache/tvm-ffi/pull/228
Full Changelog: https://github.com/apache/tvm-ffi/compare/v0.1.4...v0.1.5-rc4
[Docs] Add kernel library guide by @cyx-6 in https://github.com/apache/tvm-ffi/pull/169
Full Changelog: https://github.com/apache/tvm-ffi/compare/v0.1.3...v0.1.4
feat(cython): Expose TypeAttr via _lookup_type_attr by @junrushao in https://github.com/apache/tvm-ffi/pull/247
_lookup_type_attr by @junrushao in https://github.com/apache/tvm-ffi/pull/247TypeInfo is properly registered by all classes by @junrushao in https://github.com/apache/tvm-ffi/pull/246--module-name when building Cython by @junrushao in https://github.com/apache/tvm-ffi/pull/248tvm.registry.get_registered_type_keys() by @junrushao in https://github.com/apache/tvm-ffi/pull/249import by @junrushao in https://github.com/apache/tvm-ffi/pull/259__all__ for proper exporting by @junrushao in https://github.com/apache/tvm-ffi/pull/268Full Changelog: https://github.com/apache/tvm-ffi/compare/v0.1.2...v0.1.3-rc1
This is a minor patch release, mainly to include the fixes support for corner cases and enable cuda-python CUstream compactibility
This is a minor patch release, mainly to include the fixes support for corner cases and enable cuda-python CUstream compactibility
ml_dtypes<0.5 by @oraluben in https://github.com/apache/tvm-ffi/pull/222Full Changelog: https://github.com/apache/tvm-ffi/compare/v0.1.1...v0.1.2.rc0
This is a minor patch release, mainly to include the latest support for AOT torch-dlpack-ext and reduce JIT deadlock issues
This is a minor patch release, mainly to include the latest support for AOT torch-dlpack-ext and reduce JIT deadlock issues
__init__ method if available by @junrushao in https://github.com/apache/tvm-ffi/pull/174.pyi docstrings into Cython by @junrushao in https://github.com/apache/tvm-ffi/pull/175setuptools_scm for better versioning by @junrushao in https://github.com/apache/tvm-ffi/pull/154?sanitize=true in SVG URL by @junrushao in https://github.com/apache/tvm-ffi/pull/196ml_dtypes<0.5 by @oraluben in https://github.com/apache/tvm-ffi/pull/198register_object by @KEKE046 in https://github.com/apache/tvm-ffi/pull/212Full Changelog: https://github.com/apache/tvm-ffi/compare/v0.1.0...v0.1.1.rc0
This is the first release of tvm-ffi
This is the first release of tvm-ffi
Apache TVM FFI is an open ABI and FFI for ML systems. It is a minimal, framework-agnostic, yet flexible open convention with the following systems in mind:
It has the following technical features:
Full Changelog: https://github.com/apache/tvm-ffi/commits/v0.1.0
Your coding agent can read these notes before it upgrades. Set up the MCP server →