{"id":34647225,"url":"https://github.com/neuschaefer/jzvm","last_synced_at":"2026-04-10T21:35:10.863Z","repository":{"id":213749947,"uuid":"722566670","full_name":"neuschaefer/jzvm","owner":"neuschaefer","description":"Experiments in Jazelle DBX","archived":false,"fork":false,"pushed_at":"2023-12-27T02:50:29.000Z","size":35,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2023-12-27T04:10:17.628Z","etag":null,"topics":["arm","jazelle","jvm","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/neuschaefer.png","metadata":{"files":{"readme":"README.md","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,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-11-23T12:28:57.000Z","updated_at":"2023-12-22T18:27:36.000Z","dependencies_parsed_at":"2023-12-22T20:55:12.600Z","dependency_job_id":"f34fa3e8-dcaa-4d43-a3fb-630b3fbf6a8a","html_url":"https://github.com/neuschaefer/jzvm","commit_stats":null,"previous_names":["neuschaefer/jzvm"],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/neuschaefer/jzvm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neuschaefer%2Fjzvm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neuschaefer%2Fjzvm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neuschaefer%2Fjzvm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neuschaefer%2Fjzvm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/neuschaefer","download_url":"https://codeload.github.com/neuschaefer/jzvm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neuschaefer%2Fjzvm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31660558,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T17:19:37.612Z","status":"ssl_error","status_checked_at":"2026-04-10T17:19:13.364Z","response_time":98,"last_error":"SSL_read: 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":["arm","jazelle","jvm","rust"],"created_at":"2025-12-24T17:48:24.199Z","updated_at":"2026-04-10T21:35:10.858Z","avatar_url":"https://github.com/neuschaefer.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jzvm - ARM Jazelle DBX experiments\n\n_Project links: [repo] ([mirror]), [issues], CI: [ARM], [x86] ![badge]_\n\n[repo]: https://codeberg.org/neuschaefer/jzvm\n[mirror]: https://github.com/neuschaefer/jzvm\n[issues]: https://codeberg.org/neuschaefer/jzvm/issues\n[ARM]: https://codeberg.org/neuschaefer/jzvm/actions\n[x86]: https://github.com/neuschaefer/jzvm/actions\n[badge]: https://github.com/neuschaefer/jzvm/actions/workflows/github.yml/badge.svg\n\n\n## Introduction\n\nARM Jazelle DBX (\"direct bytecode execution\")[^dbx] is a ARM32 instruction set\nextension that allows running Java bytecode directly on certain CPUs.\nJazelle mode is entered by executing a special branch instruction, `BXJ`.\n\nJazelle hardware support is rather widespread within a certain timeframe of\nmanufacturing dates, since it was included in the ARM926EJ-S and ARM1176JZF-S\nCPUs at the heart of many devices.\n\nJazelle software support is rather rare, because it presumably relies on a\nproprietary JVM licensed by ARM, and the hardware isn't openly documented like\nthe rest of the ARM architecture(s). This is where `jzvm` comes in: It is an\nattempt to create both an open source software implementation, and hardware\ndocumentation for Jazelle.\n\n[^dbx]: The _Jazelle_ brand has later been reused for an unrelated technology, _Jazelle RCT_. When I say _Jazelle_ it will mean _Jazelle DBX_ most of the time.\n\n\n## License\n\nThe source code in this repository is licensed under the [LGPL 2.1]\n\n[LGPL 2.1]: https://opensource.org/license/lgpl-2-1/\n\n\n## References\n\n- Wikipedia: \u003chttps://en.wikipedia.org/wiki/Jazelle\u003e\n- the Hackspire wiki: \u003chttps://hackspire.org/index.php/Jazelle\u003e\n- a previous attempt at using Jazelle: \u003chttps://github.com/SonoSooS/libjz/wiki/About\u003e\n- and an Advent-of-Code solution: \u003chttps://github.com/aspargas2/advent-of-code-2022/tree/main/day05-jazelle\u003e\n- ARMv5 Architecture Reference Manual [DDI0100I]: \u003chttps://developer.arm.com/documentation/ddi0100/i/\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneuschaefer%2Fjzvm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneuschaefer%2Fjzvm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneuschaefer%2Fjzvm/lists"}