{"id":13780496,"url":"https://github.com/Symbitic/CTRJS","last_synced_at":"2025-05-11T13:32:22.874Z","repository":{"id":35007069,"uuid":"39101279","full_name":"Symbitic/CTRJS","owner":"Symbitic","description":"JavaScript interpreter for the Nintendo 3DS.","archived":false,"fork":false,"pushed_at":"2015-07-14T21:36:52.000Z","size":348,"stargazers_count":18,"open_issues_count":1,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-08-18T00:55:21.728Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Symbitic.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-07-14T21:29:19.000Z","updated_at":"2024-05-22T12:13:28.000Z","dependencies_parsed_at":"2022-09-15T23:20:19.548Z","dependency_job_id":null,"html_url":"https://github.com/Symbitic/CTRJS","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Symbitic%2FCTRJS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Symbitic%2FCTRJS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Symbitic%2FCTRJS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Symbitic%2FCTRJS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Symbitic","download_url":"https://codeload.github.com/Symbitic/CTRJS/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225056829,"owners_count":17414218,"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":[],"created_at":"2024-08-03T18:01:16.388Z","updated_at":"2024-11-17T15:31:15.790Z","avatar_url":"https://github.com/Symbitic.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"|Logo|\n\n=======\n CTRJS\n=======\n\n|Release| |License| \n\nNative JavaScript interpreter for the Nintendo 3DS.\n\nIntroduction\n------------\n\n`CTRJS`_ is an abbreviation for *CTR JavaScript*, and offers a full\nimplementation of JavaScript for the Nintendo 3DS, with various extensions and\nfeatures to help bring JavaScript fully into the world of Nintendo 3DS homebrew\nsoftware development.\n\nCTRJS aims to bring a full port of JavaScript to the Nintendo 3DS, using `V7`_\nas the JavaScript engine, and `libctr`_ for providing platform-specific modules,\nmaking it easier for developers to create homebrew, without needing to use\nC/C++.\n\nSee https://symbitic.github.io/ctrjs/index.html for end-user downloads and\ndocumentation.\n\nFeatures\n--------\n\n* ECMAScript E5/E5.1 compliant.\n* Nintendo 3DS specific modules, for easier porting and writing.\n* Garbage collection.\n* Asynchronous language and APIs reflect the nature inherent to modern video\n  game programming and to ARM programming in general.\n* Efficiency: Because of the languages' considerable popularity, JavaScript\n  engines are highly-opimized. CTRJS gains even more performance because it\n  sits closer to the hardware than do JavaScript engines running on a desktop.\n* Portability: Excluding unfinished ports like the filesystem and networking,\n  it should be relatively straightforward to port existing JavaScript to run on\n  CTRJS.\n* Quicker deployment, by offering a high-level language which can be written\n  on the host (PC) or target (Nintendo 3DS).\n* Modularity: Unlike most scripting languages, JavaScript has good support for\n  organizing code into modules. A module in JavaScript can be as simple as a\n  file in the same directory (e.x. ``main.js`` includes ``print.js``), or it\n  can be an externally developed library imported from a package manager (e.x.\n  writing a Node.js app that uses ExpressJS installed using NPM).\n* Following Semantic Versioning, CTRJS offers a promise of compatibility. By\n  offering a means for apps and libraries to declare which version of CTRJS they\n  were written to run on, any existing code can continue to run when new\n  versions are released, as long as the required versions can be found.\n* JavaScript is *the* programming language of the web, and not without reason.\n  It's syntax is very extensible and expressive. By given programmers the power\n  to write whatever they want, however they want, JavaScript has helped make\n  programming fun for a large number of people. Adding even greater value to\n  this benefit is the fact that Nintendo has chosen to make their console as\n  closed-nature as possible, even as it results in a critical lack of developer\n  resources. Offering a \"platform of fun\" on a platform which has only a very\n  limited offering of fun does have its advantages.\n\nInstalling\n----------\n\nCTRJS is not currently stable, and should not be considered production-ready.\nWhen the stable version is released, pre-compiled packages will be available for\ndownloading. Until then, CTRJS must be built from source. See `Building`_\nfor instructions on building CTRJS from source.\n\nBuilding\n--------\n\nBuilding CTRJS requires `OpenCTR`_, including `libctr`_. Like most OpenCTR\nprojects, CTRJS uses CMake as the build system. An example of building CTRJS\nfrom source, assuming that OpenCTR is installed and added to ``$PATH``:\n\n.. code-block:: bash\n\n   git clone https://github.com/Symbitic/CTRJS\n   cd CTRJS\n   mkdir build\n   cd build\n   cmake ..\n   make\n\nIf everything was successful, you should now have a file named ``CTRJS.3dsx``\ninside the ``build/`` directory.\n\nLicense\n-------\n\n**CTRJS** is licensed under the `GNU General Public License v3.0`_. \n\nSee `LICENSE.txt`_ for terms.\n\n.. |Logo| image:: https://openctr.github.io/_static/logo.svg\n   :alt: OpenCTR Logo\n   :width: 250px\n   :target: https://openctr.github.io/\n\n.. |Release| image:: https://img.shields.io/github/release/Symbitic/CTRJS.svg?style=flat-square\u0026label=Release\n   :alt: Latest Release\n   :target: https://github.com/OpenCTR/libctr/releases/latest\n\n.. |License| image:: https://img.shields.io/github/license/Symbitic/CTRJS.svg?style=flat-square\u0026label=License\n   :alt: GNU General Public License v3.0\n   :target: http://choosealicense.com/licenses/gpl-3.0/\n\n.. _CTRJS: https://github.com/Symbitic/CTRJS\n\n.. _V7: https://github.com/cesanta/v7\n\n.. _OpenCTR: https://github.com/OpenCTR/OpenCTR\n\n.. _libctr: https://github.com/OpenCTR/libctr\n\n.. _`GNU General Public License v3.0`: http://www.gnu.org/licenses/gpl.html\n\n.. _`LICENSE.txt`: ./LICENSE.txt\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSymbitic%2FCTRJS","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSymbitic%2FCTRJS","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSymbitic%2FCTRJS/lists"}