CJIT is a TinyCC-powered C runner and lightweight compiler frontend.
It can:
- compile and execute one or more C inputs directly from memory
- compile one source file to an object
- build an executable without running it
CJIT is designed for fast iteration, scripting-style execution, and small deployment footprints.
Homepage at Dyne.org/CJIT.
Download the latest CJIT release for your system.
Launch CJIT from a terminal console command prompt: one can mix c source files and dynamic libraries as arguments:
./cjit.exe mysource.c mylib.dll
Take a tour with the CJIT tutorial.
Run one source file:
./cjit hello.cCompile one source file to an object:
./cjit -c hello.cBuild an executable without running it:
./cjit -o hello hello.cPass arguments to the compiled program:
./cjit app.c -- --name cjit --verboseInspect the runtime configuration:
./cjit -vCJIT is not a tracing or adaptive JIT in the VM sense. It does not interpret first and optimize hot paths later.
CJIT uses TinyCC to compile C quickly, often in memory, and can execute the resulting code immediately.
The CJIT demo package comes with running examples
iex ((New-Object System.Net.WebClient).DownloadString('https://dyne.org/cjit/demo'))
curl -sL https://dyne.org/cjit/demo.sh | bash
📖 and follow the The CJIT tutorial
When installed on UNIX systems, CJIT(1) has a manpage! try man cjit after installing.
It is also visible online at dyne.org/docs/cjit.
This manual gives you insights about the CJIT command-line options.
The CJIT's Frequently Asked Questions page may provide more information.
CJIT is copyright (C) 2024-2026 by the Dyne.org foundation. Designed, written and maintained by Jaromil. Free and open source (GNU General Public License v3).
The TinyCC core component is copyright (C) 2001-2004 by Fabrice Bellard. TinyCC is also free and open source (GNU Lesser General Public License).
The CJIT manual offers more information on CJIT licensing.
