raylib libc dependency - raysan5/raylib GitHub Wiki

raylib is a C library and inevitably it depends on some implementation of C standard library (libc).

While working on raylib 3.0 I took some time to analyze that dependency in detail, no plans to remove it (maybe minimize it a bit) but I think it could be useful to have the knowledge where it is required.

stdlib.h

module libc function raylib function
rcore exit() TraceLog()

stdio.h

module libc function raylib function
rcore sprintf() TraceLog()
rcore fprintf() SaveFileText()
rcore fopen()fseek()fread()fwrite()fclose() LoadFileData()SaveFileData()LoadFileText()SaveFileText()

string.h

module libc function raylib function
rcore strlen() GetFileNameWithoutExt()GetDirectoryPath()GetPrevDirectoryPath()OpenURL()InitEvdevInput()
rcore strrchr() GetExtension()EventThreadSpawn()
rcore strcmp() IsGamepadName()
rtext strcmp() TextIsEqual()
rtext strcpy() TextAppend()TextReplace()
rtext strncpy() TextToUtf8()TextReplace()
rtext strcat() TextJoin()
rtext strstr() several funcs.
rtextures strlen() ImageTextEx()
raudio strcmp() IsFileExtension()

math.h

module libc function raylib function
rmodelsrshapesrcamera sinf()asinf()cosf()acosf()sqrtf()atan2f() several funcs.
raymath sinf()cosf()acosf()tan()fabs()sqrtf()fminf()fmaxf() several funcs.
rcore tan()atan2() BeginMode3D(), InitVrSimulator()
rtext sqrtf() GenImageFontAtlas()

stdarg.h

module libc function raylib function
rcore va_list, va_start(), vsprintf(), va_end() TraceLog()
rtext va_list, va_start(), vsprintf(), va_end() TextFormat()

Considering the size of raylib, there is not much dependency on libc... that's an interesting consideration for embedded devices development where custom libc implementations could be used.