{"id":19908999,"url":"https://github.com/dyne/cjit","last_synced_at":"2025-05-16T05:07:48.794Z","repository":{"id":258943861,"uuid":"864503934","full_name":"dyne/cjit","owner":"dyne","description":"C Just In Time, interpreter and compiler","archived":false,"fork":false,"pushed_at":"2025-04-21T23:03:20.000Z","size":3395,"stargazers_count":403,"open_issues_count":17,"forks_count":23,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-05-11T20:11:59.240Z","etag":null,"topics":["c","interpreter","jit"],"latest_commit_sha":null,"homepage":"https://dyne.org/cjit/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dyne.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSES/Apache-2.0.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["dyne"],"ko-fi":"dyneorg"}},"created_at":"2024-09-28T11:52:25.000Z","updated_at":"2025-05-05T00:50:01.000Z","dependencies_parsed_at":"2024-10-27T06:26:34.551Z","dependency_job_id":"a9e015b3-00ca-4bdc-ac82-dc359d58727d","html_url":"https://github.com/dyne/cjit","commit_stats":null,"previous_names":["dyne/cjit"],"tags_count":93,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dyne%2Fcjit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dyne%2Fcjit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dyne%2Fcjit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dyne%2Fcjit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dyne","download_url":"https://codeload.github.com/dyne/cjit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254471059,"owners_count":22076585,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","interpreter","jit"],"created_at":"2024-11-12T21:14:08.067Z","updated_at":"2025-05-16T05:07:43.784Z","avatar_url":"https://github.com/dyne.png","language":"C","funding_links":["https://github.com/sponsors/dyne","dyneorg"],"categories":[],"sub_categories":[],"readme":"[![CJIT logo](https://repository-images.githubusercontent.com/864503934/7d36d2ce-bbd6-4adf-863b-3e37b35216e1)](https://dyne.org/cjit)\n\nCJIT 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.\n\nHomepage at [Dyne.org/CJIT](https://dyne.org/cjit).\n\n## 🚀 Quick start\n\nDownload [the latest CJIT release](https://github.com/dyne/cjit/releases/) for your system.\n\nLaunch CJIT from a terminal console command prompt: one can mix c source files and dynamic libraries as arguments:\n\n```\n./cjit.exe mysource.c mylib.dll\n```\n\nTake a tour with the [CJIT tutorial](https://dyne.org/docs/cjit).\n\n\n### 📦 Download the demo\n\nThe CJIT demo package comes with running examples\n\n#### 🪟 On Windows\n\n    iex ((New-Object System.Net.WebClient).DownloadString('https://dyne.org/cjit/demo'))\n\n#### 🍎 / 🐧 On Apple/OSX and GNU/Linux\n\n    curl -sL https://dyne.org/cjit/demo.sh | bash\n\n### 📖 and follow the [The CJIT tutorial](https://dyne.org/docs/cjit)\n\n\n## ⚙️ Build from source\n\nThere are various build targets, just type `make` to have a list:\n```\n✨ Welcome to the CJIT build system\n🛟 Usage: make \u003ctarget\u003e\n👇 List of targets:\n _\n ------           __ Production targets\n linux-x86        🐧 Build a dynamically linked cjit using libs found on Linux x86\n win-wsl          🪟 Build cjit.exe for WIN64 on an Ubuntu WSL VM using gcc-mingw-w64\n win-native       🪟 Build cjit.exe for WIN64 on Windows Server\n apple-osx        🍎 Build cjit.command for Apple/OSX using clang static\n _\n ------           __ Debugging targets\n debug-gdb        🔬 Build using the address sanitizer to detect memory leaks\n debug-asan       🔬 Build using the address sanitizer to detect memory leaks\n self-host        💎 Build a CJIT that builts itself (embed its source)\n _\n ------           __ Testing targets\n check            🧪 Run all tests using the currently built binary ./cjit\n check-ci         🧪 Run all tests using the currently built binary ./cjit\n _\n ------           __ Installation targets\n install          🔌 Install the built binaries in PREFIX\n clean            🧹 Clean the source from all built objects\n```\n\n## Manpage\n\nWhen installed on UNIX systems, CJIT(1) has a manpage! try `man cjit` after installing.\n\nIt is also visible [online at dyne.org/docs/cjit](https://dyne.org/docs/cjit/manpage).\n\nThis manual gives you insights about the CJIT command-line options.\n\n## 🔬 Internals\n\nCJIT is a bit complex inside.\n\n1. It relies on [tinycc](https://bellard.org/tcc/) to compile C code in-memory and run it immediately.\n2. It detects automatically the system on which its running and auto-configures to support most features.\n3. It embeds all C code and headers in [cjit/assets](https://github.com/dyne/cjit/tree/main/assets) making them available to all running code.\n4. To embed them creates a `tar.gz` of assets at build-time and decompresses them at run-time in a temporary dir.\n5. It ships a non-exclusive, opinionated selection of libraries useful to quickly script advanced applications in C.\n\nThe [CJIT's Frequently Asked Questions](https://dyne.org/docs/cjit/faq/) page may provide more information.\n\n## 📑 Acknowledgements\n\nCJIT is copyright (C) 2024-2025 by the Dyne.org foundation. \nDesigned, written and maintained by [Jaromil](https://jaromil.dyne.org).\nFree and open source (GNU General Public License v3).\n\nThe TinyCC core component is copyright (C) 2001-2004 by Fabrice\nBellard. TinyCC is also free and open source (GNU Lesser General\nPublic License).\n\nThe CJIT manual offers [more information on CJIT licensing](https://dyne.org/docs/cjit/manpage/#licensing).\n\n[![software by Dyne.org](https://files.dyne.org/software_by_dyne.png)](http://www.dyne.org)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdyne%2Fcjit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdyne%2Fcjit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdyne%2Fcjit/lists"}