Skip to content

Wrapper Generator Report

Generated by python3 scripts/api_wrapper_generator_report.py --markdown docs/contributing/wrapper-generator-report.md.

Draft wrapper output is written to build/wrapper-generator/drafts during local runs and is not committed.

Role

The wrapper generator turns Godot's extension_api.json into conservative Kotlin wrapper drafts. Its job is to scale API coverage without hand-writing thousands of MethodBind calls, while refusing shapes where Kanama has not defined ABI, ownership, or marshalling policy yet.

Generated drafts are not automatically promoted. A class only becomes public source after review, smoke coverage where practical, and reproducibility checks against the generator output. This keeps broad wrapper growth auditable instead of relying on one-off manual wrappers.

Summary

Metric Count
API classes 1036
Classes with generated output 845
Classes with complete method generation 761
Methods generated 15332/16822 (91.1%)
Methods skipped 1490
Properties generated 4090/4162 (98.3%)
Signals generated 503/503 (100.0%)

Skip Categories

Category Skipped Methods
Virtual/internal 1437
Other 49
Dictionary 2
Blocked object wrapper 2

Missing Helper Shapes

These are the highest-leverage ptrcall helper shapes to add next, excluding broader data-type policy work.

Shape Count
None 0

Top Skip Reasons

Reason Count
internal/virtual callback methods are not emitted as public wrappers 1437
root Object methods are exposed through the hand-shaped GodotObject policy 49
by design: Dictionary->Dictionary passthrough via the generic Map<String, Any?> helper silently drops non-String keys; shape reverted in 27b06fe6 (editor-LSP only) 2
ownership-sensitive RefCounted lifetime method is hand-shaped 2

Complete Method Classes

These classes have every method covered by the conservative generator. Promotion remains a deliberate API review step.

Class Methods Properties Signals
RenderingServer 535/535 1/1 2/2
DisplayServer 287/287 0/0 1/1
TextServer 244/244 0/0 0/0
Environment 188/188 93/93 0/0
PhysicsServer3D 175/175 0/0 0/0
NavigationServer3D 154/154 0/0 3/3
BaseMaterial3D 154/154 131/131 0/0
RichTextLabel 138/138 30/30 4/4
NavigationServer2D 137/137 0/0 3/3
RenderingDevice 135/135 0/0 0/0
Viewport 130/130 50/50 2/2
TreeItem 125/125 4/4 0/0
PhysicsServer2D 119/119 0/0 0/0
ParticleProcessMaterial 116/116 124/124 1/1
FontFile 106/106 17/22 0/0
PopupMenu 102/102 14/14 4/4
LineEdit 97/97 36/36 4/4
TileSet 90/90 5/5 0/0
CPUParticles3D 90/90 77/77 1/1
NavigationAgent3D 86/86 33/33 6/6
ItemList 85/85 18/18 5/5
Animation 85/85 4/4 0/0
SpringBoneSimulator3D 83/83 3/3 0/0
OS 83/83 3/3 0/0
NavigationAgent2D 80/80 30/30 6/6
Input 77/77 5/5 1/1
CPUParticles2D 77/77 69/69 1/1
Image 76/76 0/1 0/0
AccessibilityServer 75/75 0/0 0/0
Tree 72/72 16/16 15/15
Node3D 71/71 17/17 1/1
GLTFState 71/71 31/31 0/0
EditorInterface 71/71 2/2 0/0
Theme 69/69 3/3 0/0
NativeMenu 69/69 0/0 0/0
FileAccess 68/68 1/1 0/0
LookAtModifier3D 63/63 30/30 0/0
GPUParticles3D 63/63 32/32 1/1
TextParagraph 62/62 13/13 0/0
Label3D 61/61 33/33 0/0
TabBar 60/60 14/14 8/8
NavigationMesh 58/58 25/26 0/0
GPUParticles2D 57/57 26/26 1/1
AudioServer 57/57 4/4 2/2
Skeleton3D 56/56 4/4 6/6
GridMap 56/56 13/13 2/2
TileData 54/54 11/11 1/1
AnimationPlayer 54/54 12/12 2/2
Camera2D 52/52 28/28 0/0
TabContainer 51/51 12/12 7/7

Near Ready Classes

Class Methods Properties Signals Skips
Window 133/134 (99.3%) 41/41 16/16 1
CanvasItem 93/94 (98.9%) 16/16 4/4 1
RigidBody3D 59/60 (98.3%) 23/23 5/5 1
RigidBody2D 58/59 (98.3%) 23/23 5/5 1
GraphNode 42/43 (97.7%) 3/3 2/2 1
TextEdit 249/255 (97.6%) 47/47 7/7 6
AnimationMixer 40/41 (97.6%) 10/10 7/7 1
CodeEdit 114/117 (97.4%) 22/22 5/5 3
PhysicalBone3D 37/38 (97.4%) 16/16 0/0 1
TileMap 61/63 (96.8%) 5/5 1/1 2
Range 23/24 (95.8%) 10/10 2/2 1
GraphEdit 75/79 (94.9%) 25/25 19/19 4
TileMapLayer 55/58 (94.8%) 13/13 1/1 3
EditorProperty 35/37 (94.6%) 12/12 13/13 2
AStarGrid2D 33/35 (94.3%) 9/9 0/0 2
CompositorEffect 14/15 (93.3%) 7/7 0/0 1
Control 181/195 (92.8%) 61/63 10/10 14
PrimitiveMesh 12/13 (92.3%) 5/5 0/0 1
VisualInstance3D 12/13 (92.3%) 3/3 0/0 1
BaseButton 23/25 (92.0%) 10/10 4/4 2
CollisionObject3D 32/35 (91.4%) 6/6 3/3 3
Node 121/133 (91.0%) 14/14 11/11 12
GDScriptTextDocument 19/21 (90.5%) 0/0 0/0 2
EditorDock 27/30 (90.0%) 12/12 2/2 3
AStar2D 25/28 (89.3%) 1/1 0/0 3
AStar3D 25/28 (89.3%) 1/1 0/0 3
CollisionObject2D 36/41 (87.8%) 5/5 5/5 5
Translation 12/14 (85.7%) 2/3 0/0 2
SubViewportContainer 6/7 (85.7%) 3/3 0/0 1
Resource 22/26 (84.6%) 4/4 2/2 4
EditorResourcePicker 10/12 (83.3%) 4/4 2/2 2
CameraFeed 17/21 (81.0%) 3/3 2/2 4
EditorContextMenuPlugin 4/5 (80.0%) 0/0 0/0 1

Largest Generated Drafts

Class Methods Properties Signals Skips
RenderingServer 535/535 1/1 2/2 0
DisplayServer 287/287 0/0 1/1 0
TextEdit 249/255 47/47 7/7 6
TextServer 244/244 0/0 0/0 0
Environment 188/188 93/93 0/0 0
Control 181/195 61/63 10/10 14
PhysicsServer3D 175/175 0/0 0/0 0
BaseMaterial3D 154/154 131/131 0/0 0
NavigationServer3D 154/154 0/0 3/3 0
RichTextLabel 138/138 30/30 4/4 0
NavigationServer2D 137/137 0/0 3/3 0
RenderingDevice 135/135 0/0 0/0 0
Window 133/134 41/41 16/16 1
Viewport 130/130 50/50 2/2 0
TreeItem 125/125 4/4 0/0 0
Node 121/133 14/14 11/11 12
PhysicsServer2D 119/119 0/0 0/0 0
ParticleProcessMaterial 116/116 124/124 1/1 0
CodeEdit 114/117 22/22 5/5 3
FontFile 106/106 17/22 0/0 0