CJIT is a C interpreter based on tinyCC that compiles C code in-memory and runs it live. It is released as a small, all-in-one executable that can do a lot, including call functions from any installed library on Linux, Windows, and MacOSX.
More info on Dyne.org/CJIT.
We provide ready to execute binary builds on github releases.
Beware windows defender will warn you that there is a virus in the file.
There isn't, this is the 0.6.2 release analysis on VirusTotal.
Just download the CJIT executable for your system and run it with c source files as well dynamic libraries as arguments:
./cjit.exe mysource.c mylib.dll
There are various build targets, just type make
to have a list:
✨ Welcome to the CJIT build system
🛟 Usage: make <target>
👇 List of targets:
_
------ __ Production targets
musl-linux 🗿 Build a fully static cjit using musl-libc on Linux
linux-x86 🐧 Build a dynamically linked cjit using libs found on Linux x86
win-wsl 🪟 Build cjit.exe for WIN64 on an Ubuntu WSL VM using gcc-mingw-w64
win-native 🪟 Build cjit.exe for WIN64 on Windows Server
apple-osx 🍎 Build cjit.command for Apple/OSX using clang static
_
------ __ Debugging targets
debug-asan 🔬 Build using the address sanitizer to detect memory leaks
_
------ __ Testing targets
check 🧪 Run all tests using the currently built binary ./cjit
_
clean 🧹 Clean the source from all built objects
CJIT is copyright (C) 2024 by the Dyne.org foundation
CJIT is distributed under the GNU General Public License v3
TinyCC is copyright (C) 2001-2004 by Fabrice Bellard
TinyCC is distributed under the GNU Lesser General Public License
For more information on licensing please refer to the Reuse report and license texts included in LICENSES/.