🚀 [v0.3.43] Release Note: Better llama.cpp ABI Compatibility, MTMD Performance and Extension API Support #154
JamePeng
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Release Note: 0.3.43
Better llama.cpp ABI Compatibility, MTMD Performance and Extension API Support
This release focuses on improving compatibility with the rapidly evolving llama.cpp ecosystem, especially around experimental APIs, ABI changes, MTMD processing, and latest model integrations.
As llama.cpp continues to introduce new capabilities through staging interfaces and frequently evolving internal APIs, I have improved the binding layer to better tolerate ABI differences while keeping the Python interface stable. Experimental extension APIs are now integrated more safely, with clearer diagnostics instead of unexpected library initialization failures.
Highlights
Better llama.cpp ABI Compatibility and Extension API Support
I added support for optional bindings for the experimental
llama-ext.hAPIs, including:Because
llama-ext.his a staging interface and ABI stability is not guaranteed, these symbols are now loaded optionally. Missing exports caused by different llama.cpp versions, renamed symbols, or build configurations will no longer prevent the Python package from loading.The ctypes binding layer now supports:
required=FalseThis makes it easier to track upstream llama.cpp changes while maintaining compatibility across different builds.
Improved ctypes Binding Diagnostics
The ctypes binding system now validates argument declarations before registering functions with the shared library.
Previously, invalid
argtypesdefinitions could expose low-level ctypes errors such as missingfrom_param()methods, making debugging difficult.The new validation provides clearer information about:
This should significantly simplify debugging when adding new llama.cpp API bindings.
MTMD Performance and Stability Improvements
Improved
GenericMTMDChatHandlertemplate handling by caching chat template resolution and parsing results.Previously, chat template analysis could be repeated during every request. This release moves template resolution into initialization and caches:
This reduces unnecessary processing overhead and keeps runtime execution focused on message rendering and media tokenization.
Additional fixes:
Gemma 4 Chat Template Synchronization
Updated
Gemma4ChatHandlerto synchronize with the latest Hugging Face Gemma 4 chat template.The update improves:
Reference:
https://huggingface.co/google/gemma-4-31B-it/commit/68abe48010cbe15293462fa11e901a60639a44e5
llama.cpp Backend and Binding Updates
Synced llama.cpp bindings with:
ggml-org/llama.cpp86d86ed4396b4130922f7b9af26e3d9fc11a591bUpdated:
Sync date:
Other Improvements
llama_cppimport alias tollama_cpp_libin embedding code to avoid namespace conflicts.importlib.metadatawithout importingllama_cpp, avoiding initialization side effects.Full Changes
Compare:
e522cec...a641283
Thank you for following the development of this project.
I will continue improving llama.cpp compatibility, experimental API integration, and Python binding stability as upstream evolves.
JamePeng
Beta Was this translation helpful? Give feedback.
All reactions