C-API tracking: missing Stable ABI functions in crates/capi
Author: bschoenmaeckersCreated Jun 24, 2026Updated Sep 17, 2026
Latest update: 2026-09-17
Goal
Track CPython Stable ABI C-API functions that are still missing from RustPython crates/capi, organized by CPython Include/ header layout (mirroring RustPython’s capi split, including abstract_/*).
Missing Stable ABI Functions by Header
Derived from CPython Misc/stable_abi.toml and compared against exported C-API functions in RustPython crates/capi/src.
This list includes only functions that are still candidates for implementation in RustPython C-API:
- starts from all
[function.*]entries inMisc/stable_abi.toml - removes private functions (names starting with
_) - removes functions already implemented in RustPython
crates/capi/src - removes functions marked removed in CPython "What's New" C-API notes across Python 3.0 through 3.15
- marks remaining deprecated or soft-deprecated functions as
(deprecated) - groups remaining functions by CPython
Include/*.hheader, using RustPython's existingcrates/capi/srcfile split (includingabstract_/*)
Total missing: 270
Include/abstract.h -> crates/capi/src/abstract_.rs (4)
PyObject_CallFunctionPyObject_CallFunctionObjArgsPyObject_CallMethodPyVectorcall_NARGS
Include/abstract.h -> crates/capi/src/abstract_/number.rs (2)
PyNumber_AsSsize_tPyNumber_ToBase
Include/abstract.h -> crates/capi/src/abstract_/sequence.rs (1)
PySequence_Fast
Include/audit.h (2)
PySys_AuditPySys_AuditTuple
Include/bytearrayobject.h (1)
PyByteArray_Concat
Include/bytesobject.h (9)
PyBytes_AsStringAndSizePyBytes_ConcatPyBytes_ConcatAndDelPyBytes_DecodeEscapePyBytes_FromFormatPyBytes_FromFormatVPyBytes_FromObjectPyBytes_FromStringPyBytes_Repr
Include/ceval.h (8)
PyEval_EvalCodeExPyEval_GetFuncNamePyEval_ReleaseThreadPy_AddPendingCallPy_GetRecursionLimitPy_LeaveRecursiveCallPy_MakePendingCallsPy_SetRecursionLimit
Include/descrobject.h (2)
PyMember_GetOne(deprecated)PyMember_SetOne(deprecated)
Include/fileobject.h (5)
PyFile_FromFdPyFile_GetLinePyFile_WriteObjectPyFile_WriteStringPyObject_AsFileDescriptor
Include/fileutils.h (2)
Py_DecodeLocale(deprecated)Py_EncodeLocale(deprecated)
Include/import.h (17)
PyImport_AddModulePyImport_AddModuleObjectPyImport_AppendInittabPyImport_ExecCodeModulePyImport_ExecCodeModuleObjectPyImport_ExecCodeModuleWithPathnamesPyImport_GetImporterPyImport_GetMagicNumberPyImport_GetMagicTagPyImport_GetModule(deprecated)PyImport_GetModuleDictPyImport_ImportFrozenModulePyImport_ImportFrozenModuleObjectPyImport_ImportModule(deprecated)PyImport_ImportModuleLevelPyImport_ImportModuleLevelObjectPyImport_ReloadModule
Include/intrcheck.h (5)
PyOS_AfterFork(deprecated)PyOS_AfterFork_Child(deprecated)PyOS_AfterFork_Parent(deprecated)PyOS_BeforeFork(deprecated)PyOS_InterruptOccurred
Include/iterobject.h (2)
PyCallIter_NewPySeqIter_New
Include/listobject.h (1)
PyList_GetItem
Include/longobject.h (5)
PyLong_AsLongAndOverflowPyLong_AsLongLongAndOverflowPyLong_GetInfoPyOS_strtolPyOS_strtoul
Include/memoryobject.h (3)
PyMemoryView_FromBufferPyMemoryView_FromMemoryPyMemoryView_GetContiguous
Include/methodobject.h (3)
PyCFunction_GetFlagsPyCFunction_GetFunctionPyCFunction_GetSelf
Include/modsupport.h (21)
PyABIInfo_CheckPyArg_ParsePyArg_ParseTuple(deprecated)PyArg_ParseTupleAndKeywordsPyArg_UnpackTuplePyArg_VaParsePyArg_VaParseTupleAndKeywordsPyArg_ValidateKeywordArgumentsPyModule_Add(deprecated)PyModule_AddFunctionsPyModule_AddIntConstantPyModule_AddObject(deprecated)PyModule_AddObjectRef(deprecated)PyModule_AddStringConstantPyModule_AddTypePyModule_Create2PyModule_ExecDef(deprecated)PyModule_FromDefAndSpec2(deprecated)PyModule_SetDocStringPy_BuildValuePy_VaBuildValue
Include/moduleobject.h (11)
PyModuleDef_InitPyModule_GetDefPyModule_GetDictPyModule_GetFilenamePyModule_GetNamePyModule_GetStatePyModule_GetStateSizePyModule_GetState_DuringGCPyModule_GetTokenPyModule_GetToken_DuringGCPyModule_New
Include/object.h (22)
PyType_ClearCachePyType_FromMetaclass(deprecated)PyType_FromModuleAndSpec(deprecated)PyType_FromSlotsPyType_FromSpec(deprecated)PyType_FromSpecWithBases(deprecated)PyType_GenericAllocPyType_GenericNewPyType_GetBaseByTokenPyType_GetBaseByToken_DuringGCPyType_GetModulePyType_GetModuleByDefPyType_GetModuleByTokenPyType_GetModuleByToken_DuringGCPyType_GetModuleStatePyType_GetModuleState_DuringGCPyType_GetModule_DuringGCPyType_GetTypeDataSizePyType_ModifiedPyType_ReadyPy_SET_SIZEPy_SIZE
Include/objimpl.h (3)
PyObject_GC_DelPyObject_InitPyObject_InitVar
Include/pybuffer.h (11)
PyBuffer_FillContiguousStridesPyBuffer_FillInfoPyBuffer_FromContiguousPyBuffer_GetPointerPyBuffer_IsContiguousPyBuffer_ReleasePyBuffer_SizeFromFormatPyBuffer_ToContiguousPyObject_CheckBufferPyObject_CopyDataPyObject_GetBuffer
Include/pycapsule.h (3)
PyCapsule_GetDestructorPyCapsule_SetDestructorPyCapsule_SetName
Include/pyerrors.h (11)
PyErr_FormatPyErr_FormatVPyErr_NormalizeExceptionPyErr_ProgramTextPyErr_SetImportErrorPyErr_SetImportErrorSubclassPyErr_SyntaxLocationPyErr_SyntaxLocationExPyExceptionClass_NamePyOS_snprintfPyOS_vsnprintf
Include/pylifecycle.h (10)
PyOS_getsigPyOS_setsigPy_AtExitPy_BytesMainPy_EndInterpreterPy_ExitPy_MainPy_NewInterpreterPy_SetProgramNamePy_SetPythonHome
Include/pystate.h (27)
PyGILState_GetThisThreadStatePyInterpreterGuard_ClosePyInterpreterGuard_FromCurrentPyInterpreterGuard_FromViewPyInterpreterState_ClearPyInterpreterState_DeletePyInterpreterState_GetDictPyInterpreterState_NewPyInterpreterView_ClosePyInterpreterView_FromCurrentPyInterpreterView_FromMainPyState_AddModulePyState_FindModulePyState_RemoveModulePyThreadState_ClearPyThreadState_DeletePyThreadState_EnsurePyThreadState_EnsureFromViewPyThreadState_GetPyThreadState_GetDictPyThreadState_GetFramePyThreadState_GetIDPyThreadState_GetInterpreterPyThreadState_NewPyThreadState_ReleasePyThreadState_SetAsyncExc(deprecated)PyThreadState_Swap
Include/pystrtod.h (2)
PyOS_double_to_stringPyOS_string_to_double
Include/pythonrun.h (3)
PyErr_Display(deprecated)PyErr_PrintPyOS_CheckStack
Include/pythread.h (8)
PyThread_GetInfoPyThread_tss_allocPyThread_tss_createPyThread_tss_deletePyThread_tss_freePyThread_tss_getPyThread_tss_is_createdPyThread_tss_set
Include/sliceobject.h (2)
PySlice_GetIndicesPySlice_GetIndicesEx(deprecated)
Include/structseq.h (4)
PyStructSequence_GetItemPyStructSequence_NewPyStructSequence_NewTypePyStructSequence_SetItem
Include/sysmodule.h (13)
PySys_FormatStderrPySys_FormatStdoutPySys_GetAttrPySys_GetAttrStringPySys_GetObjectPySys_GetOptionalAttrPySys_GetOptionalAttrStringPySys_GetXOptionsPySys_SetArgvPySys_SetArgvExPySys_SetObjectPySys_WriteStderrPySys_WriteStdout
Include/traceback.h (1)
PyTraceBack_Here
Include/unicodeobject.h (42)
PyUnicode_AppendPyUnicode_AppendAndDelPyUnicode_AsCharmapStringPyUnicode_AsMBCSStringPyUnicode_AsUCS4PyUnicode_AsUCS4CopyPyUnicode_AsWideCharPyUnicode_AsWideCharString(deprecated)PyUnicode_BuildEncodingMapPyUnicode_CountPyUnicode_DecodeCharmapPyUnicode_DecodeCodePageStatefulPyUnicode_DecodeLocalePyUnicode_DecodeLocaleAndSize(deprecated)PyUnicode_DecodeMBCSPyUnicode_DecodeMBCSStatefulPyUnicode_DecodeUTF16PyUnicode_DecodeUTF16StatefulPyUnicode_DecodeUTF32PyUnicode_DecodeUTF32StatefulPyUnicode_DecodeUTF7StatefulPyUnicode_DecodeUTF8StatefulPyUnicode_EncodeCodePagePyUnicode_EncodeLocale(deprecated)PyUnicode_FSConverterPyUnicode_FSDecoderPyUnicode_FindPyUnicode_FindChar(deprecated)PyUnicode_FromFormatPyUnicode_FromFormatVPyUnicode_FromWideCharPyUnicode_Join(deprecated)PyUnicode_RSplitPyUnicode_ReadCharPyUnicode_ReplacePyUnicode_ResizePyUnicode_RichComparePyUnicode_SplitPyUnicode_SplitlinesPyUnicode_SubstringPyUnicode_TailmatchPyUnicode_WriteChar
Include/warnings.h (2)
PyErr_ResourceWarningPyErr_WarnFormat
Source: RustPython/RustPython