{"id":50463615,"url":"https://github.com/GiavaScript/GiavaScript","last_synced_at":"2026-06-17T22:01:16.050Z","repository":{"id":360535617,"uuid":"1127023752","full_name":"GiavaScript/GiavaScript","owner":"GiavaScript","description":"GiavaScript JavaScript runtime ✨💎🚀✨ ","archived":false,"fork":false,"pushed_at":"2026-06-15T01:41:26.000Z","size":392,"stargazers_count":1,"open_issues_count":5,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-15T03:20:44.805Z","etag":null,"topics":["giavascript","gs","javascript","js","linux","macos","mit","runtime","windows"],"latest_commit_sha":null,"homepage":"","language":"Crystal","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/GiavaScript.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-01-03T02:49:03.000Z","updated_at":"2026-06-15T02:43:50.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/GiavaScript/GiavaScript","commit_stats":null,"previous_names":["memburg/giavascript"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/GiavaScript/GiavaScript","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GiavaScript%2FGiavaScript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GiavaScript%2FGiavaScript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GiavaScript%2FGiavaScript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GiavaScript%2FGiavaScript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GiavaScript","download_url":"https://codeload.github.com/GiavaScript/GiavaScript/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GiavaScript%2FGiavaScript/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34466930,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-17T02:00:05.408Z","response_time":127,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["giavascript","gs","javascript","js","linux","macos","mit","runtime","windows"],"created_at":"2026-06-01T06:00:24.487Z","updated_at":"2026-06-17T22:01:16.041Z","avatar_url":"https://github.com/GiavaScript.png","language":"Crystal","funding_links":[],"categories":["Implementations/Compilers"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cpicture align=\"center\"\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"assets/gs_logo_light.png\" width=\"350\"\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"assets/gs_logo.png\" width=\"350\"\u003e\n    \u003cimg alt=\"GiavaScript Logo\" src=\"assets/gs_logo.png\"\u003e\n  \u003c/picture\u003e\n\u003c/p\u003e\n\u003ch1 align=\"center\"\u003eGiavaScript\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/memburg/GiavaScript/actions/workflows/linux.yml\"\u003e\n    \u003cimg src=\"https://github.com/memburg/GiavaScript/actions/workflows/linux.yml/badge.svg\" alt=\"Linux CI\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/memburg/GiavaScript/actions/workflows/macos.yml\"\u003e\n    \u003cimg src=\"https://github.com/memburg/GiavaScript/actions/workflows/macos.yml/badge.svg\" alt=\"macOS CI\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/memburg/GiavaScript/actions/workflows/windows.yml\"\u003e\n    \u003cimg src=\"https://github.com/memburg/GiavaScript/actions/workflows/windows.yml/badge.svg\" alt=\"Windows CI\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/memburg/GiavaScript/actions/workflows/nightly.yml\"\u003e\n    \u003cimg src=\"https://github.com/memburg/GiavaScript/actions/workflows/nightly.yml/badge.svg\" alt=\"Nightly Crystal CI\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://crystal-lang.org/\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/crystal-1.19.1+-000000.svg?logo=crystal\u0026logoColor=white\" alt=\"Crystal\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/memburg/GiavaScript/releases\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/v/release/memburg/GiavaScript?include_prereleases\" alt=\"Version\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nGiavaScript is an open-source, cross-platform JavaScript runtime implemented in Crystal.\n\nIt intentionally does not aim for full ECMAScript compliance. Check the reference docs before relying on specific language features.\n\n## Quick start\n\n### Prerequisites\n\n- [Crystal](https://crystal-lang.org/) 1.19.1 or later\n- Python 3 (only needed to regenerate `reference/REFERENCE.md`)\n\n### Install the CLI\n\n```bash\ngit clone https://github.com/memburg/GiavaScript.git\ncd GiavaScript\n./install.sh\n```\n\nThis installs the `giavascript` binary to `/usr/local/bin` by default.\n\nInstall to a user-local path instead of `/usr/local/bin`:\n\n```bash\nINSTALL_DIR=\"$HOME/.local/bin\" ./install.sh\n```\n\nMake sure your install directory is on `PATH`.\n\n## CLI usage\n\n### Start the REPL\n\n```bash\ngiavascript\n```\n\nREPL commands:\n\n- `:quit` exits the REPL.\n\n### Run a file\n\n```bash\ngiavascript path/to/program.js\n```\n\nBehavior to expect:\n\n- Empty files return an error.\n- If a runtime error occurs, messages are written to standard error.\n- Process exit code is `1` when any `Error:` message is produced; otherwise `0`.\n\n### Run without installing\n\n```bash\ncrystal run src/giavascript_cli.cr -- examples/templateLiterals.js\n```\n\n## Development workflow\n\nInstall dependencies and run tests:\n\n```bash\nshards install\ncrystal spec\n```\n\nRegenerate consolidated reference docs after editing files under `reference/`:\n\n```bash\npython3 scripts/generate_reference.py\n```\n\nCI verifies that `reference/REFERENCE.md` matches generated output.\n\n## JavaScript feature reference\n\n- [Consolidated reference](reference/REFERENCE.md)\n- [Language features](reference/Language.md)\n- [Type methods and properties](reference/Types.md)\n- [Math](reference/Math.md)\n- [JSON](reference/JSON.md)\n\n## Examples\n\nSample programs are in `examples/`:\n\n- `examples/templateLiterals.js` - string interpolation and expression formatting\n- `examples/arrayFlatFlatMapSplice.js` - array manipulation methods\n- `examples/dateBasics.js` - Date object usage\n- `examples/functionExpressionsAndOperators.js` - function expressions and operators\n- `examples/multilineMethodChaining.js` - method chaining patterns\n- `examples/objectKeysValuesEntries.js` - Object.keys, values, entries\n- `examples/random.js` - random number generation\n- `examples/tryCatchFinally.js` - error handling with try/catch/finally\n\nRun any example with:\n\n```bash\ngiavascript examples/templateLiterals.js\n```\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for setup, test, and documentation update guidelines.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGiavaScript%2FGiavaScript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGiavaScript%2FGiavaScript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGiavaScript%2FGiavaScript/lists"}