{"id":13299578,"url":"https://github.com/echosoar/jsi","last_synced_at":"2025-10-27T21:31:07.009Z","repository":{"id":103982476,"uuid":"579675414","full_name":"echosoar/jsi","owner":"echosoar","description":"JSI is a JavaScript Interpreter written in Rust.","archived":false,"fork":false,"pushed_at":"2024-01-08T00:48:25.000Z","size":786,"stargazers_count":7,"open_issues_count":2,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-01T08:32:28.712Z","etag":null,"topics":["compiler","ecmascript","es2020","es6","interpreter","javascript","javascript-ast-parser","javascript-engine","javascript-interpreter","javascript-runtime","parser","test262"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/echosoar.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-12-18T13:58:12.000Z","updated_at":"2024-08-07T11:17:03.000Z","dependencies_parsed_at":"2023-10-03T11:35:49.730Z","dependency_job_id":"3404593d-5792-4b91-8596-80300871abe0","html_url":"https://github.com/echosoar/jsi","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/echosoar%2Fjsi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/echosoar%2Fjsi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/echosoar%2Fjsi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/echosoar%2Fjsi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/echosoar","download_url":"https://codeload.github.com/echosoar/jsi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238560845,"owners_count":19492601,"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":["compiler","ecmascript","es2020","es6","interpreter","javascript","javascript-ast-parser","javascript-engine","javascript-interpreter","javascript-runtime","parser","test262"],"created_at":"2024-07-29T17:37:45.032Z","updated_at":"2025-10-27T21:31:07.005Z","avatar_url":"https://github.com/echosoar.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"## JSI\n\nJSI is a JavaScript interpreter written in Rust that supports bytecode similar to quickjs.\n\n\n\u003cimg src=\"https://img.shields.io/badge/Test262-4280%20Passed-brightgreen.svg\" alt=\"test262 passed\" /\u003e\n\u003cimg src=\"https://img.shields.io/badge/Test262-46442%20Total-blue.svg\" alt=\"test262 total\" /\u003e\n\n---\n\n### Usage\n```rust\nuse jsi::JSI;\n\nlet mut jsi = JSI::new();\n\n// Run with ast\nlet result = jsi.run(String::from(\"\\\n  let a = [];\n  let i = 0;\n  outer:\n  while(i \u003c 3) {\n    i ++;\n    let j = 0;\n    while(j \u003c 5) {\n      j ++;\n      if (j == 1 \u0026\u0026 i == 1) {\n        continue outer\n      }\n      if (j == 4) break\n      if (j == 3 \u0026\u0026 i == 2) {\n        break outer\n      }\n      a.push(i * j);\n    }\n  }\n  a.join(':')\")\n).unwrap();\nassert_eq!(result , Value::String(String::from(\"2:4\")));\n\n// Run with bytecode\nlet result2 = jsi.run_with_bytecode(String::from(\"\\\n  let a = '123';\n  let b = 'abc';\n  a + b\n  \")).unwrap();\nassert_eq!(result , Value::String(String::from(\"123abc\")));\n```\n\n### Development\n\n+ git submodule `git submodule update --init --recursive`\n+ test262 `RUST_MIN_STACK=8388608 cargo test --package jsi --test test262_test -- test_all_262 --exact --nocapture`\n\n### Refs\n\n+ Ecma Standard: https://tc39.es/ecma262/multipage/#sec-intro\n+ Test262: https://github.com/tc39/test262\n\n### License\nMIT\n\n---\nby [echosoar](https://github.com/echosoar)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fechosoar%2Fjsi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fechosoar%2Fjsi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fechosoar%2Fjsi/lists"}