{"id":13726797,"url":"https://github.com/jstime/jstime","last_synced_at":"2026-05-23T21:00:58.164Z","repository":{"id":37076466,"uuid":"287680996","full_name":"jstime/jstime","owner":"jstime","description":"another runtime","archived":false,"fork":false,"pushed_at":"2026-05-21T02:45:50.000Z","size":3840,"stargazers_count":334,"open_issues_count":1,"forks_count":24,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-05-21T09:10:08.435Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jstime.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2020-08-15T05:02:21.000Z","updated_at":"2026-05-21T02:45:52.000Z","dependencies_parsed_at":"2024-01-17T21:08:04.630Z","dependency_job_id":"3135159d-e50d-4e7e-828e-e55b999cfc70","html_url":"https://github.com/jstime/jstime","commit_stats":{"total_commits":533,"total_committers":12,"mean_commits":"44.416666666666664","dds":0.5403377110694184,"last_synced_commit":"d53d7e1fdce0e28107ca7ee18e38fb0c5c870e38"},"previous_names":[],"tags_count":121,"template":false,"template_full_name":null,"purl":"pkg:github/jstime/jstime","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jstime%2Fjstime","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jstime%2Fjstime/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jstime%2Fjstime/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jstime%2Fjstime/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jstime","download_url":"https://codeload.github.com/jstime/jstime/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jstime%2Fjstime/sbom","scorecard":{"id":539317,"data":{"date":"2025-08-11","repo":{"name":"github.com/jstime/jstime","commit":"3246b9804b51377cc4073f54081e8c03c2747771"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.6,"checks":[{"name":"Maintained","score":2,"reason":"3 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 0/2 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/jstime/jstime/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/jstime/jstime/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/jstime/jstime/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/jstime/jstime/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/jstime/jstime/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/jstime/jstime/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/jstime/jstime/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/jstime/jstime/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/jstime/jstime/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:81: update your workflow using https://app.stepsecurity.io/secureworkflow/jstime/jstime/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:92: update your workflow using https://app.stepsecurity.io/secureworkflow/jstime/jstime/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/jstime/jstime/release.yml/main?enable=pin","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   8 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/release.yml:75"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.54.0 not signed: https://api.github.com/repos/jstime/jstime/releases/167757433","Warn: release artifact v0.53.0 not signed: https://api.github.com/repos/jstime/jstime/releases/166573072","Warn: release artifact v0.52.0 not signed: https://api.github.com/repos/jstime/jstime/releases/164832769","Warn: release artifact v0.51.0 not signed: https://api.github.com/repos/jstime/jstime/releases/159242707","Warn: release artifact v0.50.0 not signed: https://api.github.com/repos/jstime/jstime/releases/145528140","Warn: release artifact v0.54.0 does not have provenance: https://api.github.com/repos/jstime/jstime/releases/167757433","Warn: release artifact v0.53.0 does not have provenance: https://api.github.com/repos/jstime/jstime/releases/166573072","Warn: release artifact v0.52.0 does not have provenance: https://api.github.com/repos/jstime/jstime/releases/164832769","Warn: release artifact v0.51.0 does not have provenance: https://api.github.com/repos/jstime/jstime/releases/159242707","Warn: release artifact v0.50.0 does not have provenance: https://api.github.com/repos/jstime/jstime/releases/145528140"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":5,"reason":"5 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: RUSTSEC-2021-0139","Warn: Project is vulnerable to: RUSTSEC-2021-0145 / GHSA-g98v-hv3f-hcfr","Warn: Project is vulnerable to: RUSTSEC-2024-0375","Warn: Project is vulnerable to: RUSTSEC-2024-0436","Warn: Project is vulnerable to: RUSTSEC-2024-0370"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 29 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-20T07:48:50.313Z","repository_id":37076466,"created_at":"2025-08-20T07:48:50.313Z","updated_at":"2025-08-20T07:48:50.313Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33412082,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T18:09:33.147Z","status":"ssl_error","status_checked_at":"2026-05-23T18:09:31.380Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2024-08-03T01:03:23.082Z","updated_at":"2026-05-23T21:00:58.158Z","avatar_url":"https://github.com/jstime.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# jstime\n\n\u003e Another JavaScript runtime\n\n![jstime logo. Kinda looks like shrek](./logo.png)\n\n## Using the binary\n\nYou can find the latest jstime binary on the [release page](https://github.com/jstime/jstime/releases)\n\nAlternatively, you can install it with Cargo:\n\n```bash\n$ cargo install jstime\n```\n\n### As a REPL\n\n```bash\n$ jstime\n\nWelcome to jstime!\n\n\u003e\u003e\n```\n\n### Run a script\n\n```bash\n$ cat hello-world.js\nconsole.log(\"hello world\");\n\n$ jstime hello-world.js\nhello world\n\n```\n\n### Performance: JIT Warmup\n\nFor benchmarking or performance-critical scripts, use the `--warmup` flag to allow V8's JIT compiler to optimize the code:\n\n```bash\n$ jstime --warmup 10 benchmark.js\n```\n\nThis runs the script 10 times before the actual execution, allowing TurboFan to profile and optimize hot code paths.\n\n## Embed it\n\nCheck out the [`jstime_core` README](./core/README.md) for instructions on how to embed jstime in your Rust application.\n\n## Features\n\njstime provides a minimal and performant JavaScript runtime with essential APIs.\n\nFor detailed documentation on all supported features, see [Documentation](./docs/README.md).\n\n**👉 Check out the [examples/](./examples/) directory for runnable code samples!**\n\n### Quick Overview\n\n- **Console API**: `console.log()`, `console.error()`, etc.\n- **Timers**: `setTimeout()`, `setInterval()`, and clearing functions\n- **Fetch API**: Modern HTTP client with `fetch()`, `Headers`, `Request`, `Response`\n- **Streams API**: `ReadableStream`, `WritableStream`, `TransformStream` for streaming data processing\n- **URL API**: `URL` and `URLSearchParams` for URL manipulation\n- **Performance API**: High-resolution timing with `performance.now()`\n- **Event API**: `Event` and `EventTarget` for event handling\n- **Microtask API**: `queueMicrotask()` for fine-grained async control\n- **Structured Clone API**: `structuredClone()` for deep cloning of complex objects\n- **Base64 API**: `atob()` and `btoa()` for base64 encoding/decoding\n- **Text Encoding API**: `TextEncoder` and `TextDecoder` for UTF-8 encoding/decoding\n- **Crypto API**: `crypto.getRandomValues()`, `crypto.randomUUID()`, `crypto.subtle.*` (digest, sign, verify, encrypt, decrypt)\n- **Process API**: `process.env`, `process.argv`, `process.cwd()`, `process.exit()`, `process.stdout`, `process.stderr`, `process.stdin`\n- **File System API**: Complete Node.js-compatible `fs/promises` with `readFile()`, `writeFile()`, `mkdir()`, `stat()`, and more\n- **Buffer API**: Node.js-compatible `Buffer` for binary data operations\n- **UDP Sockets API**: Node.js-compatible `dgram` module for UDP networking\n- **WebAssembly**: Full WebAssembly support for running high-performance compiled modules\n- **ES Modules**: Full support for `import`/`export` with top-level await, dynamic `import()`, and **Node.js-compatible `node_modules` resolution**\n- **Modern JavaScript**: All ES2015+ features via V8 engine\n\n## Testing\n\njstime includes comprehensive test coverage including conformance tests for standard APIs:\n\n- **Console API** - WHATWG Console Standard compliance\n- **Event API** - WHATWG DOM Events compliance\n- **Timers API** - WHATWG HTML Standard timers compliance\n- **Fetch API** - WHATWG Fetch Standard compliance\n- **Streams API** - WHATWG Streams Standard compliance\n- **URL API** - WHATWG URL Standard compliance\n- **Performance API** - W3C High Resolution Time compliance\n- **Structured Clone API** - HTML Standard structured cloning compliance\n- **Base64 API** - HTML Standard base64 encoding compliance\n- **Text Encoding API** - WHATWG Encoding Standard compliance\n- **Crypto API** - W3C Web Cryptography API compliance\n- **JSON Modules** - ECMAScript JSON modules compliance\n- **WebAssembly** - WebAssembly specification compliance\n\nRun all tests with:\n```bash\ncargo test\n```\n\nFor more details on conformance testing, see [core/tests/CONFORMANCE_TESTS.md](./core/tests/CONFORMANCE_TESTS.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjstime%2Fjstime","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjstime%2Fjstime","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjstime%2Fjstime/lists"}