{"id":22076417,"url":"https://github.com/shadowshahriar/crunchy-runner","last_synced_at":"2025-03-23T20:14:35.398Z","repository":{"id":240532371,"uuid":"801709008","full_name":"ShadowShahriar/crunchy-runner","owner":"ShadowShahriar","description":"A simple web-based compiler and code runner.","archived":false,"fork":false,"pushed_at":"2024-11-06T12:56:50.000Z","size":106,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-29T03:49:27.713Z","etag":null,"topics":["c-compiler","cpp-compiler","node-pty","xterm-js"],"latest_commit_sha":null,"homepage":"https://youtu.be/MHisDMl7HQI","language":"JavaScript","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/ShadowShahriar.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-16T18:59:54.000Z","updated_at":"2024-11-06T12:56:54.000Z","dependencies_parsed_at":"2024-05-22T23:44:37.432Z","dependency_job_id":"f08133cd-4af5-44db-8e22-96b8e5636a0e","html_url":"https://github.com/ShadowShahriar/crunchy-runner","commit_stats":null,"previous_names":["shadowshahriar/crunchy-runner"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShadowShahriar%2Fcrunchy-runner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShadowShahriar%2Fcrunchy-runner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShadowShahriar%2Fcrunchy-runner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShadowShahriar%2Fcrunchy-runner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ShadowShahriar","download_url":"https://codeload.github.com/ShadowShahriar/crunchy-runner/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245162189,"owners_count":20570692,"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-compiler","cpp-compiler","node-pty","xterm-js"],"created_at":"2024-11-30T22:14:36.071Z","updated_at":"2025-03-23T20:14:35.374Z","avatar_url":"https://github.com/ShadowShahriar.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Crunchy Runner\n\n## Overview\n\n\u003e **Crunchy Runner** is a local compiler and code runner created with web technologies. It uses [`node-pty`][1] to create a terminal instance that users can interact with in the front end using [`xterm.js`][2]\n\n**Update:** Added support for **C#**, **Java**, **Python**, **JavaScript**, and **Go**.\n\n[📌 **Video Demo**][8]\n\n![Crunchy Runner Landing Page](./static/preview.png)\n\nThis project was _heavily_ inspired by the [**Programiz Online C Compiler**][3], but it lacked themes and customizability. So, I decided to create something similar with more features.\n\nInitially, it started as a weekend project where I learned how to connect the backend with the frontend using [`express.js`][4] and [**web sockets**][5].\n\nSpecial thanks to [**Ehsanul Haque**][11] vaiya for this project idea. I had a great time brainstorming this one.\n\n## Prerequisites\n\nThis project depends on `node-pty`, which in turn depends on an older version of Node.js (**\u003cv18**). If you are using a newer version of Node.js (**≥v18**), it is recommended to use [**Node Version Manager (nvm)**][6] to switch to the older version. In my case, Node **v17.9.1** seems to work well with `node-pty`.\n\nIf you are on Windows, you might need to install some [**additional tools**][7] first. Specifically these ones:\n\n-   **Python**\n    -   [Python 2.7.15 (x64)][15]\n-   **Visual Studio Installer**\n    -   [Windows SDK 10.0.22621.3233][13]\n    -   [Microsoft VS2015U3 VC++ 2015 x64 Spectre Libs][14]\n\n## Installation\n\nAssuming you have the appropriate version of [**Node.js**][12] installed, run the following command to install the dependencies:\n\n```bash\nnpm install\n```\n\nAfter that, run the following to see the project in action:\n\n```bash\nnpm start\n```\n\n## Features\n\n-   Minimal Design\n-   **10+** Dark Themes\n-   Support for multiple languages (C, C++, C#, Java, Python, JavaScript, and Go)\n-   Code Editor powered by [**CodeMirror**][9]\n-   Real-time terminal emulation (I/O) using [`node-pty`][1] and [`xterm.js`][2]\n\n## Compilers\n\nIDEs like [**Code::Blocks**][21] come with bundled compilers for C-like languages. However, **Crunchy Runner** uses local compilers that are already installed on your system. So, you must install the compilers **manually** if your system doesn't have them.\n\n| Language   | Software                                         | Instructions                  |\n| ---------- | ------------------------------------------------ | ----------------------------- |\n| C, C++     | GNU\u0026nbsp;Compiler\u0026nbsp;Collection\u0026nbsp;(**GCC**) | [**MSYS2**][16]               |\n| C#         | C#\u0026nbsp;Compiler\u0026nbsp;(**CSC**)                  | [**Stack\u0026nbsp;Overflow**][17] |\n| Java       | Java\u0026nbsp;Development\u0026nbsp;Kit (**JDK**)         | [**Official\u0026nbsp;Site**][18]  |\n| Python     | Python                                           | [**Official\u0026nbsp;Site**][19]  |\n| JavaScript | Node.js                                          | [**Official\u0026nbsp;Site**][20]  |\n| Go         | Go                                               | [**Official\u0026nbsp;Site**][22]  |\n\n## License\n\nThe source code is licensed under [**MIT**][10].\n\n\u003c!-- === links === --\u003e\n\n[1]: https://www.npmjs.com/package/node-pty\n[2]: https://xtermjs.org/\n[3]: https://www.programiz.com/c-programming/online-compiler/\n[4]: https://expressjs.com/\n[5]: https://www.npmjs.com/package/ws\n[6]: https://github.com/coreybutler/nvm-windows/releases/tag/1.1.12\n[7]: https://github.com/microsoft/node-pty#windows\n[8]: https://youtu.be/MHisDMl7HQI\n[9]: https://codemirror.net/\n[10]: ./LICENSE\n[11]: https://www.facebook.com/61556343740668/\n[12]: https://nodejs.org/en/blog/release/v17.9.1\n[13]: https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/\n[14]: https://aka.ms/vs/14/release/vcpp_spectre_libs_x64\n[15]: https://www.python.org/downloads/release/python-2715/\n[16]: https://www.msys2.org/\n[17]: https://stackoverflow.com/a/47624225\n[18]: https://www.oracle.com/java/technologies/downloads/\n[19]: https://www.python.org/downloads/\n[20]: https://nodejs.org/en/download/package-manager\n[21]: https://www.codeblocks.org/\n[22]: https://go.dev/dl/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshadowshahriar%2Fcrunchy-runner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshadowshahriar%2Fcrunchy-runner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshadowshahriar%2Fcrunchy-runner/lists"}