Embedding Djazair in C / C++
Djazair was engineered from day one to be easily embedded inside any host C or C++ application. A single header, #include "djazair.h", gives your application full scripting superpowers.
Minimal Embed Example (main.c)
c
#include "djazair.h"
#include <stdio.h>
static void customPrint(const char *text) {
printf("[Host App] %s", text);
}
int main(int argc, char **argv) {
/* 1. Configure the VM */
DjazairConfiguration config;
djazair_init_configuration(&config);
config.writeFn = customPrint;
/* 2. Instantiate isolated VM */
DjazairVM *vm = djazair_newVM(&config);
/* 3. Execute Djazair script string */
djazair_interpret(vm, "print('Hello from embedded Djazair!')");
/* 4. Execute script file */
djazair_interpret_file(vm, "game_logic.dz");
/* 5. Clean up memory */
djazair_freeVM(vm);
return 0;
}
Compiling & Linking
Link your C application against the Djazair static library or compiled object files:
bash
# Linux / macOS
gcc -Isrc/include -Isrc/core main.c build/bin/libdjazair.a -lm -lpthread -ldl -o my_app
# Windows (MinGW)
gcc -Isrc/include -Isrc/core main.c build/bin/libdjazair.a -lm -lws2_32 -lregex -o my_app.exe