Skip to content

dyne/cjit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CJIT logo

CJIT is a lightweight, free and open source C interpreter that lets you run C code instantly, without needing to build it first.

More info on Dyne.org/CJIT.

Downloads

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.

Quick start

Paste this into your terminal

curl -sLo cjit https://github.com/dyne/cjit/releases/latest/download/cjit
chmod +x cjit
cat << EOF > hello.c
#!/usr/bin/env cjit
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv) {
  fprintf(stderr,"Hello, World!\n");
  exit(0);
}
EOF

You can now play around with hello.c and write your own C code, which can be simply executed with this command:

./cjit hello.c

If you install cjit into your path then you can execute scripts directly:

#!/usr/bin/env cjit

this hash-bang on first line is supported!

Build from source

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
 linux-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

License

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/.

software by Dyne.org