{"id":13610410,"url":"https://github.com/JamesBoer/Jinx","last_synced_at":"2025-04-12T22:34:02.341Z","repository":{"id":38185027,"uuid":"62872451","full_name":"JamesBoer/Jinx","owner":"JamesBoer","description":"Embeddable scripting language for real-time applications","archived":false,"fork":false,"pushed_at":"2023-01-05T19:55:31.000Z","size":56405,"stargazers_count":320,"open_issues_count":0,"forks_count":11,"subscribers_count":22,"default_branch":"master","last_synced_at":"2025-04-09T15:07:28.147Z","etag":null,"topics":["c-plus-plus","c-plus-plus-17","cmake","embeddable-scripting-language","game-development","gamedev-library","jinx","jinx-scripts","jinx-website","language","scripting-language"],"latest_commit_sha":null,"homepage":"https://jamesboer.github.io/Jinx/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JamesBoer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-07-08T08:36:35.000Z","updated_at":"2025-03-28T01:54:19.000Z","dependencies_parsed_at":"2023-02-04T13:32:37.491Z","dependency_job_id":null,"html_url":"https://github.com/JamesBoer/Jinx","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesBoer%2FJinx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesBoer%2FJinx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesBoer%2FJinx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesBoer%2FJinx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JamesBoer","download_url":"https://codeload.github.com/JamesBoer/Jinx/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248642223,"owners_count":21138348,"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-plus-plus","c-plus-plus-17","cmake","embeddable-scripting-language","game-development","gamedev-library","jinx","jinx-scripts","jinx-website","language","scripting-language"],"created_at":"2024-08-01T19:01:44.420Z","updated_at":"2025-04-12T22:33:58.453Z","avatar_url":"https://github.com/JamesBoer.png","language":"C++","readme":"# Jinx ![CI](https://github.com/JamesBoer/Jinx/workflows/CI/badge.svg)\n\n\nJinx is a lightweight embeddable scripting language, written in modern C++, intended to be compiled and used from within a host application.  The Jinx language is clean and simple, looking like a cross between pseudo-code and natural language phrases, thanks to its highly flexible function syntax and identifiers that can incorporate whitespace. \n\nIt was inspired by languages such as Lua, Python, C++, AppleScript, and a few others.  A significant design goal was to make Jinx not only simple to use as a language, but also to make it straightforward to integrate and use via the native API.  Jinx scripts are designed to be executed asynchronously as co-routines, or even on separate threads, since the runtime is thread-safe.  The language also uses no garbage collection, ensuring predictable CPU usage.  This makes it a potential candidate for real-time applications like videogames.\n\nYou can [visit the main Jinx website here](https://jamesboer.github.io/Jinx/), or [see recent changes](https://github.com/JamesBoer/Jinx/blob/master/Docs/Changelog.md)\n\n## Getting Started with Jinx\n\nJinx requires a C++ 17 compliant compiler to build, and it is available both as a traditional or header-only library.  \n\nJinx supports the CMake build system, so for CMake users, adding Jinx should be as simple as pointing your build scripts to the root folder of the project.  Stand-alone build scripts for several platforms/IDEs are found in the ```Bin``` folder.  Alternatively, to build the library manually, copy all the files within the ```Source``` folder to your project, add them via your IDE or build system of choice, and include ```Source/Jinx.h``` from your own source files.  This should be reasonably simple, since the entire library is contained in a single folder.\n\nUsing the header-only version is even simple.  Include the header file ```Include/Jinx.hpp``` from your own source, which contains the entire library in a single amalgamated header.\n\n## Your First Jinx Script\n\nJinx is incredibly simple to use, requiring only a few lines of C++ code to compile and execute your first script.  Here's a Hello, World that not only demonstrates the Jinx script, but all the C++ code required as well.\n\n``` c++\n#include \"Jinx.h\"\n    \n// Create the Jinx runtime object\nauto runtime = Jinx::CreateRuntime();\n    \n// Text containing our Jinx script\nconst char * scriptText =\nu8R\"(\n    \n-- Use the core library\nimport core\n    \n-- Write to the debug output\nwrite line \"Hello, world!\"\n    \n)\";\n    \n// Create and execute a script object\nauto script = runtime-\u003eExecuteScript(scriptText);\n```\n\nThere is a [more comprehensive tutorial](https://jamesboer.github.io/Jinx/Tutorial.pdf) on the Jinx website for anyone who wants to dive a bit deeper into the language.\n\n## Jinx Status\n\nJinx was released as 1.0.0 (stable) on January 1, 2019, after three years of development, refinement, and testing.  Since then, mostly minor language features and API enhancements have been edded.  Additional work, for the immediate future, will be restricted to bug fixing or critical refinements, with the intention of retaining backwards compatibility.\n\n","funding_links":[],"categories":["Uncategorized"],"sub_categories":["Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJamesBoer%2FJinx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FJamesBoer%2FJinx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJamesBoer%2FJinx/lists"}