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
core srand() InitTimer()
core abs()rand() GetRandomValue()
core atexit() InitKeyboard()InitTerminal()
shapes fabs() CheckCollisionCircleRec()GetCollisionRec()
utils exit() TraceLog()

stdio.h

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

string.h

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

math.h

module libc function raylib function
models, shapes, camera sinf()asinf()cosf()acosf()sqrtf()atan2f() several funcs.
raymath sinf()cosf()acosf()tan()fabs()sqrtf()fminf()fmaxf() several funcs.
core tan()atan2() BeginMode3D(), InitVrSimulator()
text sqrtf() GenImageFontAtlas()

stdarg.h

module libc function raylib function
text va_list, va_start(), vsprintf(), va_end() TextFormat()
utils va_list, va_start(), vsprintf(), va_end() TraceLog()

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.