Skip to content

FreeType 2.14.3 Function Support

Authoritative generated contract: do not edit this file directly. Update tests/data/interface_map.json, then run python3 scripts/generate_support_matrix.py.

This is the application-adoption disposition of every function in the pinned FreeType 2.14.3 public-header inventory. It is not an export inventory or code-coverage report. A declaration, stub, null-validation route, or narrow success probe can exist without making a function application-ready. Only Complete rows claim a complete maintained mapping; every other status requires application-specific review.

1. Summary

Status Functions Meaning
Complete 52 Maintained application behavior and mapping are complete
Implemented; mapping incomplete 5 Runtime code exists; the application mapping is incomplete
Partial 29 Only the documented behavior is ready
Planned 69 No application-ready implementation is claimed
Intentionally excluded 63 Outside the currently declared product surface
Total 218 Pinned public function inventory

2. Function inventory

Area FreeType function Status Rust mapping Boundary or reason
bitmap FT_Bitmap_Blend Planned — —
bitmap FT_Bitmap_Convert Partial render::unpack_mono_row —
bitmap FT_Bitmap_Copy Planned — —
bitmap FT_Bitmap_Done Partial drop GlyphMask —
bitmap FT_Bitmap_Embolden Planned — —
bitmap FT_Bitmap_Init Partial GlyphMask —
bitmap FT_Bitmap_New Planned — —
bitmap/fonts FT_Get_BDF_Charset_ID Complete fontdone::ffi::FT_Get_BDF_Charset_ID —
bitmap/fonts FT_Get_BDF_Property Complete fontdone::ffi::FT_Get_BDF_Property —
bitmap/fonts FT_Get_WinFNT_Header Complete fontdone::ffi::FT_Get_WinFNT_Header —
cache FTC_CMapCache_Lookup Intentionally excluded — FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly.
cache FTC_CMapCache_New Intentionally excluded — FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly.
cache FTC_ImageCache_Lookup Intentionally excluded — FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly.
cache FTC_ImageCache_LookupScaler Intentionally excluded — FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly.
cache FTC_ImageCache_New Intentionally excluded — FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly.
cache FTC_Manager_Done Intentionally excluded — FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly.
cache FTC_Manager_LookupFace Intentionally excluded — FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly.
cache FTC_Manager_LookupSize Intentionally excluded — FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly.
cache FTC_Manager_New Intentionally excluded — FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly.
cache FTC_Manager_RemoveFaceID Intentionally excluded — FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly.
cache FTC_Manager_Reset Intentionally excluded — FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly.
cache FTC_Node_Unref Intentionally excluded — FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly.
cache FTC_SBitCache_Lookup Complete fontdone::ffi::FTC_SBitCache_Lookup; fontdone-c-abi::FTC_SBitCache_Lookup —
cache FTC_SBitCache_LookupScaler Intentionally excluded — FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly.
cache FTC_SBitCache_New Intentionally excluded — FTC cache APIs are stateful C object caches; Rust callers can cache Font and FontData values directly.
charmap FT_Get_Char_Index Complete Face::get_char_index / Font::char_index —
charmap FT_Get_Charmap_Index Complete Font::charmap_index —
charmap FT_Get_First_Char Complete Font::first_char —
charmap FT_Get_Name_Index Planned — —
charmap FT_Get_Next_Char Complete Font::next_char —
charmap FT_Select_Charmap Complete Font::select_charmap —
charmap FT_Set_Charmap Complete Font::set_charmap —
color/fonts FT_Get_Color_Glyph_ClipBox Intentionally excluded — Color glyph APIs require COLR/CPAL/SVG/sbix/CBDT compositing, outside the current monochrome alpha-mask renderer scope.
color/fonts FT_Get_Color_Glyph_Layer Intentionally excluded — Color glyph APIs require COLR/CPAL/SVG/sbix/CBDT compositing, outside the current monochrome alpha-mask renderer scope.
color/fonts FT_Get_Color_Glyph_Paint Intentionally excluded — Color glyph APIs require COLR/CPAL/SVG/sbix/CBDT compositing, outside the current monochrome alpha-mask renderer scope.
color/fonts FT_Get_Colorline_Stops Intentionally excluded — Color glyph APIs require COLR/CPAL/SVG/sbix/CBDT compositing, outside the current monochrome alpha-mask renderer scope.
color/fonts FT_Get_Paint Intentionally excluded — Color glyph APIs require COLR/CPAL/SVG/sbix/CBDT compositing, outside the current monochrome alpha-mask renderer scope.
color/fonts FT_Get_Paint_Layers Intentionally excluded — Color glyph APIs require COLR/CPAL/SVG/sbix/CBDT compositing, outside the current monochrome alpha-mask renderer scope.
color/fonts FT_Palette_Data_Get Intentionally excluded — Color glyph APIs require COLR/CPAL/SVG/sbix/CBDT compositing, outside the current monochrome alpha-mask renderer scope.
color/fonts FT_Palette_Select Intentionally excluded — Color glyph APIs require COLR/CPAL/SVG/sbix/CBDT compositing, outside the current monochrome alpha-mask renderer scope.
color/fonts FT_Palette_Set_Foreground_Color Intentionally excluded — Color glyph APIs require COLR/CPAL/SVG/sbix/CBDT compositing, outside the current monochrome alpha-mask renderer scope.
compression FT_Gzip_Uncompress Intentionally excluded — Compressed stream wrappers are C I/O adapters; this crate accepts already available font bytes and does not own stream transport.
compression FT_Stream_OpenBzip2 Complete ffi::FT_Stream_OpenBzip2 Enabled open/read/backward-seek/close, source ownership, null and malformed-header errors, and disabled-build precedence have exact four-lane parity.
compression FT_Stream_OpenGzip Intentionally excluded — Compressed stream wrappers are C I/O adapters; this crate accepts already available font bytes and does not own stream transport.
compression FT_Stream_OpenLZW Complete ffi::FT_Stream_OpenLZW Enabled open/read/backward-seek/close behavior and disabled-build argument-independent Unimplemented_Feature behavior have exact isolated-build parity.
error/logging FT_Error_String Intentionally excluded — FreeType error-string and logging hooks expose C runtime diagnostics; this crate uses Rust error types and the log facade.
error/logging FT_Set_Default_Log_Handler Intentionally excluded — FreeType error-string and logging hooks expose C runtime diagnostics; this crate uses Rust error types and the log facade.
error/logging FT_Set_Log_Handler Intentionally excluded — FreeType error-string and logging hooks expose C runtime diagnostics; this crate uses Rust error types and the log facade.
error/logging FT_Trace_Set_Default_Level Intentionally excluded — FreeType error-string and logging hooks expose C runtime diagnostics; this crate uses Rust error types and the log facade.
error/logging FT_Trace_Set_Level Intentionally excluded — FreeType error-string and logging hooks expose C runtime diagnostics; this crate uses Rust error types and the log facade.
face/metadata FT_Get_FSType_Flags Complete Font::get_fstype_flags —
face/metadata FT_Get_Font_Format Complete Font::font_format —
face/metadata FT_Get_Gasp Planned — —
face/metadata FT_Get_Glyph_Name Planned — —
face/metadata FT_Get_Postscript_Name Complete Font::postscript_name —
face/metadata FT_Get_SubGlyph_Info Planned — —
face/metadata FT_Get_X11_Font_Format Intentionally excluded — X11 font format naming is a legacy FreeType compatibility API; this crate reports portable font-format metadata instead.
face/open FT_Attach_File Planned — —
face/open FT_Attach_Stream Planned — —
face/open FT_Done_Face Complete drop Font —
face/open FT_New_Face Planned — —
face/open FT_New_Memory_Face Complete Library::new_memory_face / Face::from_memory —
face/open FT_Open_Face Planned — —
face/open FT_Reference_Face Planned — —
glyph/load, truetype/bytecode FT_Load_Char Complete Face::load_char —
glyph/load, truetype/bytecode FT_Load_Glyph Complete Face::load_glyph —
glyph/metrics, advances FT_Get_Advance Partial Font::getlength —
glyph/metrics, advances FT_Get_Advances Planned — —
glyph/object FT_Done_Glyph Intentionally excluded — FreeType heap glyph objects and conversion helpers are C object-lifecycle APIs; this crate exposes Rust outline/bitmap values directly.
glyph/object FT_Get_Glyph Intentionally excluded — FreeType heap glyph objects and conversion helpers are C object-lifecycle APIs; this crate exposes Rust outline/bitmap values directly.
glyph/object FT_GlyphSlot_Own_Bitmap Complete ffi::FT_GlyphSlot_Own_Bitmap —
glyph/object FT_Glyph_Copy Intentionally excluded — FreeType heap glyph objects and conversion helpers are C object-lifecycle APIs; this crate exposes Rust outline/bitmap values directly.
glyph/object FT_Glyph_Get_CBox Intentionally excluded — FreeType heap glyph objects and conversion helpers are C object-lifecycle APIs; this crate exposes Rust outline/bitmap values directly.
glyph/object FT_Glyph_To_Bitmap Intentionally excluded — FreeType heap glyph objects and conversion helpers are C object-lifecycle APIs; this crate exposes Rust outline/bitmap values directly.
glyph/object FT_Glyph_Transform Intentionally excluded — FreeType heap glyph objects and conversion helpers are C object-lifecycle APIs; this crate exposes Rust outline/bitmap values directly.
glyph/object FT_New_Glyph Complete fontdone-c-abi::FT_New_Glyph Built-in and custom renderer formats, exact class selection, zero-initialized allocation, caller ownership transfer, and class-specific FT_Done_Glyph destruction have exact pinned-C, Rust FFI, C ABI, WASM, and independent external-C evidence.
glyph/render, raster/grays FT_Render_Glyph Complete Face::load_glyph(..., LoadFlags::RENDER) —
kerning FT_Get_Kerning Planned — —
kerning FT_Get_Track_Kerning Complete ffi::FT_Get_Track_Kerning Type 1 AFM interpolation, missing-service and missing-AFM errors, and caller-output preservation have exact pinned-C, Rust FFI, C ABI, WASM, and independent external-C evidence.
library/lifecycle FT_Done_FreeType Complete drop Library —
library/lifecycle FT_Done_Library Intentionally excluded — FreeType module and renderer properties configure the C runtime module system; this pure Rust crate has no dynamic module registry.
library/lifecycle FT_Init_FreeType Complete Library::init —
library/lifecycle FT_Library_Version Planned — —
library/lifecycle FT_New_Library Intentionally excluded — FreeType module and renderer properties configure the C runtime module system; this pure Rust crate has no dynamic module registry.
library/lifecycle FT_Reference_Library Intentionally excluded — FreeType module and renderer properties configure the C runtime module system; this pure Rust crate has no dynamic module registry.
list/internal FT_List_Add Intentionally excluded — FT_List is a C intrusive-list utility used by FreeType internals, not a font API surface exposed by this crate.
list/internal FT_List_Finalize Intentionally excluded — FT_List is a C intrusive-list utility used by FreeType internals, not a font API surface exposed by this crate.
list/internal FT_List_Find Intentionally excluded — FT_List is a C intrusive-list utility used by FreeType internals, not a font API surface exposed by this crate.
list/internal FT_List_Insert Intentionally excluded — FT_List is a C intrusive-list utility used by FreeType internals, not a font API surface exposed by this crate.
list/internal FT_List_Iterate Intentionally excluded — FT_List is a C intrusive-list utility used by FreeType internals, not a font API surface exposed by this crate.
list/internal FT_List_Remove Intentionally excluded — FT_List is a C intrusive-list utility used by FreeType internals, not a font API surface exposed by this crate.
list/internal FT_List_Up Intentionally excluded — FT_List is a C intrusive-list utility used by FreeType internals, not a font API surface exposed by this crate.
math FT_Angle_Diff Planned — —
math FT_Atan2 Planned — —
math FT_CeilFix Complete fixed::ft_ceil_fix —
math FT_Cos Planned — —
math FT_DivFix Complete fixed::ft_div_fix —
math FT_FloorFix Complete fixed::ft_floor_fix —
math FT_Matrix_Invert Planned — —
math FT_Matrix_Multiply Planned — —
math FT_MulDiv Complete fixed::ft_mul_div —
math FT_MulFix Complete fixed::ft_mul_fix —
math FT_RoundFix Complete fixed::ft_round_fix —
math FT_Sin Planned — —
math FT_Tan Planned — —
math FT_Vector_From_Polar Planned — —
math FT_Vector_Length Planned — —
math FT_Vector_Polarize Planned — —
math FT_Vector_Rotate Planned — —
math FT_Vector_Transform Planned — —
math FT_Vector_Unit Planned — —
outline FT_Get_Transform Planned — —
outline FT_Outline_Check Planned — —
outline FT_Outline_Copy Planned — —
outline FT_Outline_Decompose Partial grays::rasterize outline walk —
outline FT_Outline_Done Planned — —
outline FT_Outline_Embolden Planned — —
outline FT_Outline_EmboldenXY Planned — —
outline FT_Outline_Get_BBox Planned — —
outline FT_Outline_Get_Bitmap Planned — —
outline FT_Outline_Get_CBox Partial scaler::scale_glyph —
outline FT_Outline_Get_Orientation Planned — —
outline FT_Outline_New Planned — —
outline FT_Outline_Render Planned — —
outline FT_Outline_Reverse Planned — —
outline FT_Outline_Transform Planned — —
outline FT_Outline_Translate Partial scaler::scale_glyph —
outline FT_Set_Transform Planned — —
properties/modules FT_Add_Default_Modules Intentionally excluded — FreeType module and renderer properties configure the C runtime module system; this pure Rust crate has no dynamic module registry.
properties/modules FT_Add_Module Intentionally excluded — FreeType module and renderer properties configure the C runtime module system; this pure Rust crate has no dynamic module registry.
properties/modules FT_Get_Module Intentionally excluded — FreeType module and renderer properties configure the C runtime module system; this pure Rust crate has no dynamic module registry.
properties/modules FT_Get_Renderer Intentionally excluded — FreeType module and renderer properties configure the C runtime module system; this pure Rust crate has no dynamic module registry.
properties/modules FT_Property_Get Intentionally excluded — FreeType module and renderer properties configure the C runtime module system; this pure Rust crate has no dynamic module registry.
properties/modules FT_Property_Set Intentionally excluded — FreeType module and renderer properties configure the C runtime module system; this pure Rust crate has no dynamic module registry.
properties/modules FT_Remove_Module Intentionally excluded — FreeType module and renderer properties configure the C runtime module system; this pure Rust crate has no dynamic module registry.
properties/modules FT_Set_Debug_Hook Intentionally excluded — FreeType module and renderer properties configure the C runtime module system; this pure Rust crate has no dynamic module registry.
properties/modules FT_Set_Default_Properties Intentionally excluded — FreeType module and renderer properties configure the C runtime module system; this pure Rust crate has no dynamic module registry.
properties/modules FT_Set_Renderer Intentionally excluded — FreeType module and renderer properties configure the C runtime module system; this pure Rust crate has no dynamic module registry.
raster/lcd FT_Library_SetLcdFilter Partial ffi::FT_Library_SetLcdFilter (feature-matched preset and stored-state contract) —
raster/lcd FT_Library_SetLcdFilterWeights Partial ffi::FT_Library_SetLcdFilterWeights (five-byte copy and stored-state contract) —
raster/lcd FT_Library_SetLcdGeometry Partial ffi::FT_Library_SetLcdGeometry (Harmony geometry and alternate-feature error contract) —
sfnt/tables FT_Get_CMap_Format Complete Font::charmaps —
sfnt/tables FT_Get_CMap_Language_ID Planned — —
sfnt/tables FT_Get_Sfnt_LangTag Planned — —
sfnt/tables FT_Get_Sfnt_Name Planned — —
sfnt/tables FT_Get_Sfnt_Name_Count Planned — —
sfnt/tables FT_Sfnt_Table_Info Complete Font::sfnt_table_info —
sfnt/tables, truetype/tables FT_Get_Sfnt_Table Partial tt table parsers —
sfnt/tables, truetype/tables FT_Load_Sfnt_Table Complete Font::load_sfnt_table —
size/select FT_Activate_Size Planned — —
size/select FT_Done_Size Planned — —
size/select FT_New_Size Planned — —
size/select FT_Request_Size Planned — —
size/select FT_Select_Size Planned — —
size/select FT_Set_Char_Size Complete Face::set_char_size —
size/select FT_Set_Pixel_Sizes Complete Face::set_pixel_sizes —
stroker FT_Glyph_Stroke Partial fontdone::ffi::FT_Outline_Glyph_Stroke; fontdone-c-abi::FT_Glyph_Stroke The maintained DejaVuSans glyph 36 full-stroke route is implemented and verified through Rust FFI, C ABI, and WASM ABI. Destroy-option coverage and general glyph stroking remain pending.
stroker FT_Glyph_StrokeBorder Partial fontdone::ffi::FT_Outline_Glyph_StrokeBorder; fontdone-c-abi::FT_Glyph_StrokeBorder The Pillow ImageFont stroke_filled=true path is wired through the Rust outline-glyph stroke-border wrapper, but successful outside/inside border geometry and destroy-option parity remain pending.
stroker FT_Outline_GetInsideBorder Partial fontdone::ffi::FT_Outline_GetInsideBorder Implemented for the outline orientation routes used by stroke-border selection; broader orientation fixture coverage remains tied to stroker parity.
stroker FT_Outline_GetOutsideBorder Partial fontdone::ffi::FT_Outline_GetOutsideBorder Implemented for the outline orientation routes used by stroke-border selection; broader orientation fixture coverage remains tied to stroker parity.
stroker FT_Stroker_BeginSubPath Partial fontdone::ffi::FT_Stroker_BeginSubPath; fontdone-c-abi::FT_Stroker_BeginSubPath Implemented for maintained open/closed subpath state routes; full stroker state-machine parity remains pending.
stroker FT_Stroker_ConicTo Partial fontdone::ffi::FT_Stroker_ConicTo; fontdone-c-abi::FT_Stroker_ConicTo Implemented for maintained conic fixture routes with exact public output; general conic subdivision remains pending.
stroker FT_Stroker_CubicTo Partial fontdone::ffi::FT_Stroker_CubicTo; fontdone-c-abi::FT_Stroker_CubicTo Implemented for maintained cubic fixture routes with exact public output; general cubic subdivision remains pending.
stroker FT_Stroker_Done Partial fontdone::ffi::FT_Stroker_Done; fontdone-c-abi::FT_Stroker_Done Implemented and covered for maintained lifecycle cleanup rows; exhaustive lifetime and allocator cases remain pending.
stroker FT_Stroker_EndSubPath Partial fontdone::ffi::FT_Stroker_EndSubPath; fontdone-c-abi::FT_Stroker_EndSubPath Implemented for maintained no-segment, open-line, closed-line, conic, and cubic routes; general joins/caps remain pending.
stroker FT_Stroker_Export Partial fontdone::ffi::FT_Stroker_Export; fontdone-c-abi::FT_Stroker_Export Implemented for maintained left-then-right export and append routes; general combined outline export remains pending.
stroker FT_Stroker_ExportBorder Partial fontdone::ffi::FT_Stroker_ExportBorder; fontdone-c-abi::FT_Stroker_ExportBorder Implemented for maintained selected-border export and append routes; general border outline export remains pending.
stroker FT_Stroker_GetBorderCounts Partial fontdone::ffi::FT_Stroker_GetBorderCounts; fontdone-c-abi::FT_Stroker_GetBorderCounts Implemented for maintained finalized border states and invalid-input rows; full border-count parity follows the pending general stroker state machine.
stroker FT_Stroker_GetCounts Partial fontdone::ffi::FT_Stroker_GetCounts; fontdone-c-abi::FT_Stroker_GetCounts Implemented for maintained finalized combined counts and invalid-input rows; full count parity follows the pending general stroker state machine.
stroker FT_Stroker_LineTo Partial fontdone::ffi::FT_Stroker_LineTo; fontdone-c-abi::FT_Stroker_LineTo Implemented for maintained zero-length, first-segment, and simple-line routes; general polyline stroke geometry remains pending.
stroker FT_Stroker_New Partial fontdone::ffi::FT_Stroker_New; fontdone-c-abi::FT_Stroker_New Implemented and covered through maintained Rust FFI, C ABI, and WASM lifecycle rows; allocator-failure and full object-lifetime matrix remain pending.
stroker FT_Stroker_ParseOutline Partial fontdone::ffi::FT_Stroker_ParseOutline; fontdone-c-abi::FT_Stroker_ParseOutline Implemented with FreeType-shaped contour/tag traversal for maintained line/conic/cubic routes; general segment stroking and export parity remain pending.
stroker FT_Stroker_Rewind Partial fontdone::ffi::FT_Stroker_Rewind; fontdone-c-abi::FT_Stroker_Rewind Implemented and covered for maintained state-reset routes; exhaustive state lifecycle parity remains pending.
stroker FT_Stroker_Set Partial fontdone::ffi::FT_Stroker_Set; fontdone-c-abi::FT_Stroker_Set Implemented for maintained radius/cap/join routes used by current stroke fixtures; full cap/join/miter behavior remains pending.
synthesis FT_GlyphSlot_AdjustWeight Intentionally excluded — Synthetic embolden, weight adjustment, and oblique transforms are not part of the current FreeType-compatible TrueType path.
synthesis FT_GlyphSlot_Embolden Intentionally excluded — Synthetic embolden, weight adjustment, and oblique transforms are not part of the current FreeType-compatible TrueType path.
synthesis FT_GlyphSlot_Oblique Intentionally excluded — Synthetic embolden, weight adjustment, and oblique transforms are not part of the current FreeType-compatible TrueType path.
synthesis FT_GlyphSlot_Slant Intentionally excluded — Synthetic embolden, weight adjustment, and oblique transforms are not part of the current FreeType-compatible TrueType path.
truetype/bytecode FT_Face_CheckTrueTypePatents Intentionally excluded — TrueType patent toggles are obsolete FreeType compatibility APIs and have no effect in this pure Rust implementation.
truetype/bytecode FT_Face_SetUnpatentedHinting Intentionally excluded — TrueType patent toggles are obsolete FreeType compatibility APIs and have no effect in this pure Rust implementation.
truetype/bytecode FT_Get_TrueType_Engine_Type Planned — —
truetype/variations FT_Done_MM_Var Planned — —
truetype/variations FT_Face_GetCharVariantIndex Implemented; mapping incomplete Face::get_char_variant_index / Font::char_variant_index —
truetype/variations FT_Face_GetCharVariantIsDefault Implemented; mapping incomplete Face::get_char_variant_is_default / Font::char_variant_is_default —
truetype/variations FT_Face_GetCharsOfVariant Implemented; mapping incomplete Face::get_chars_of_variant / Font::chars_of_variant —
truetype/variations FT_Face_GetVariantSelectors Implemented; mapping incomplete Face::get_variant_selectors / Font::variant_selectors —
truetype/variations FT_Face_GetVariantsOfChar Implemented; mapping incomplete Face::get_variants_of_char / Font::variants_of_char —
truetype/variations FT_Face_Properties Planned — —
truetype/variations FT_Get_Default_Named_Instance Planned — —
truetype/variations FT_Get_MM_Blend_Coordinates Planned — —
truetype/variations FT_Get_MM_Var Planned — —
truetype/variations FT_Get_MM_WeightVector Planned — —
truetype/variations FT_Get_Multi_Master Planned — —
truetype/variations FT_Get_Var_Axis_Flags Planned — —
truetype/variations FT_Get_Var_Blend_Coordinates Planned — —
truetype/variations FT_Get_Var_Design_Coordinates Planned — —
truetype/variations FT_Set_MM_Blend_Coordinates Planned — —
truetype/variations FT_Set_MM_Design_Coordinates Planned — —
truetype/variations FT_Set_MM_WeightVector Planned — —
truetype/variations FT_Set_Named_Instance Planned — —
truetype/variations FT_Set_Var_Blend_Coordinates Planned — —
truetype/variations FT_Set_Var_Design_Coordinates Planned — —
type1/cid FT_Get_CID_From_Glyph_Index Complete fontdone::ffi::FT_Get_CID_From_Glyph_Index —
type1/cid FT_Get_CID_Is_Internally_CID_Keyed Complete fontdone::ffi::FT_Get_CID_Is_Internally_CID_Keyed —
type1/cid FT_Get_CID_Registry_Ordering_Supplement Complete fontdone::ffi::FT_Get_CID_Registry_Ordering_Supplement —
type1/cid FT_Get_PFR_Advance Complete fontdone::ffi::FT_Get_PFR_Advance —
type1/cid FT_Get_PFR_Kerning Complete fontdone::ffi::FT_Get_PFR_Kerning —
type1/cid FT_Get_PFR_Metrics Complete fontdone::ffi::FT_Get_PFR_Metrics —
type1/cid FT_Get_PS_Font_Info Complete fontdone::ffi::FT_Get_PS_Font_Info —
type1/cid FT_Get_PS_Font_Private Complete fontdone::ffi::FT_Get_PS_Font_Private —
type1/cid FT_Get_PS_Font_Value Complete fontdone::ffi::FT_Get_PS_Font_Value —
type1/cid FT_Has_PS_Glyph_Names Complete fontdone::ffi::FT_Has_PS_Glyph_Names —
validation FT_ClassicKern_Free Complete fontdone::ffi::FT_ClassicKern_Free Null-face behavior and non-null face-memory release are exact, including allocator callback evidence.
validation FT_ClassicKern_Validate Complete fontdone::ffi::FT_ClassicKern_Validate Microsoft, Apple, combined-dialect, missing-table, malformed-table, non-SFNT, and invalid-input behavior is exact across all ABI lanes.
validation FT_OpenType_Free Complete fontdone::ffi::FT_OpenType_Free Non-null tables are released through their owning face memory and null/foreign inputs retain the documented no-op behavior.
validation FT_OpenType_Validate Complete fontdone::ffi::FT_OpenType_Validate Pinned-C table selection, valid and malformed input, partial-failure cleanup, and public output ownership are exact across Rust, C ABI, external C, and WASM.
validation FT_TrueTypeGX_Free Complete fontdone::ffi::FT_TrueTypeGX_Free Null-face behavior and non-null face-memory release are exact, including allocator callback evidence.
validation FT_TrueTypeGX_Validate Complete fontdone::ffi::FT_TrueTypeGX_Validate Pinned-C selected/all-table output, table-length bounds, invalid inputs, non-SFNT and malformed-table errors are exact across Rust, C ABI, external C, and WASM.

3. Verification

Run these commands from the repository root:

python3 scripts/generate_support_matrix.py --check
make api-abi-audit
python3 scripts/generate_support_matrix.py --check \
  --audit-json target/api-abi-audit/api_abi_audit.json

The second check proves that the committed adoption map covers the same 218 symbols as the independently parsed pinned C header inventory. Runtime routes, exact parity cases, and the 12-category C contract are reported separately; they cannot promote a row implicitly.