{"id":13787928,"url":"https://github.com/sangkeon/java-opa-wasm","last_synced_at":"2026-01-11T22:46:57.672Z","repository":{"id":48194698,"uuid":"353066403","full_name":"sangkeon/java-opa-wasm","owner":"sangkeon","description":null,"archived":false,"fork":false,"pushed_at":"2024-04-10T05:00:07.000Z","size":373,"stargazers_count":18,"open_issues_count":4,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-03T18:52:34.862Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","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/sangkeon.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":"2021-03-30T16:22:11.000Z","updated_at":"2025-03-26T05:46:29.000Z","dependencies_parsed_at":"2024-08-03T21:01:32.114Z","dependency_job_id":"863dd1a7-86ff-4af7-8ace-6d1e2db7f0c5","html_url":"https://github.com/sangkeon/java-opa-wasm","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/sangkeon/java-opa-wasm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sangkeon%2Fjava-opa-wasm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sangkeon%2Fjava-opa-wasm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sangkeon%2Fjava-opa-wasm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sangkeon%2Fjava-opa-wasm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sangkeon","download_url":"https://codeload.github.com/sangkeon/java-opa-wasm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sangkeon%2Fjava-opa-wasm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28326144,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-11T22:11:01.104Z","status":"ssl_error","status_checked_at":"2026-01-11T22:10:58.990Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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-03T21:00:33.460Z","updated_at":"2026-01-11T22:46:57.656Z","avatar_url":"https://github.com/sangkeon.png","language":"Java","readme":"# OPA(Open Policy Agent) WebAssembly SDK for Java\n\n## About\nOPA(www.openpolicyagent.org) ia a awesome policy engine for Cloud Native Application and Micro Services.\n\nThis project is a very sample-grade sdk to illustrate how to use wasm compiled rego policy for Java application.\n\nThis project uses https://github.com/kawamuray/wasmtime-java for WASM runtime.\n\nInspired by and, borrowed many ideas+codes from following projects. \n- golang-opa-wasm(https://github.com/open-policy-agent/golang-opa-wasm)\n- npm-opa-wasm(https://github.com/open-policy-agent/npm-opa-wasm)\n- dotnet-opa-wasm(https://github.com/christophwille/dotnet-opa-wasm)\n\nTested under OPA version 0.26.0\n\n## Warning\n- Very early stage project and almost sdk independent builtin functions not implemented(just place holder).\n- \u003cdel\u003eIf you are using an Apple Silicon Mac, see [FOR_APPLE_SILICON_USERS.md](./FOR_APPLE_SILICON_USERS.md) first./del\u003e\n\n## Usage\n\n### Maven dependency ###\n```\n    \u003cdependency\u003e\n        \u003cgroupId\u003eio.github.sangkeon\u003c/groupId\u003e\n        \u003cartifactId\u003ejava-opa-wasm\u003c/artifactId\u003e\n        \u003cversion\u003e0.2.5\u003c/version\u003e\n    \u003c/dependency\u003e\n```\n\n### To load and evaluate for OPA wasm file \n```\ntry (\n    OPAModule om = new OPAModule(\"./sample-policy/wasm/policy.wasm\");\n) {\n    String input = \"{\\\"user\\\": \\\"john\\\"}\";\n    String data = \"{\\\"role\\\":{\\\"john\\\":\\\"admin\\\"}}\";\n\n    om.setData(data);\n\n    String result = om.evaluate(input, \"opa/wasm/test/allowed\");\n\n    System.out.println(\"result=\" + result);\n}\n```\n\n### To load and evaluate for OPA bundle \nWhen using bundle, policy.wasm and data.json inside bundle will be loaded.\n\n```\ntry {\n    Bundle bundle = BundleUtil.extractBundle(\"./sample-policy/bundle/bundle.tar.gz\");\n\n    try (\n        OPAModule om = new OPAModule(bundle);\n    ) {\n        String input = \"{\\\"user\\\": \\\"alice\\\"}\";\n        String result = om.evaluate(input, \"opa/wasm/test/allowed\");\n\n        System.out.println(\"result=\" + result);\n    }\n} catch(Exception e) {\n}\n\n```\n","funding_links":[],"categories":["WebAssembly (Wasm)"],"sub_categories":["Containers","Typescript"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsangkeon%2Fjava-opa-wasm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsangkeon%2Fjava-opa-wasm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsangkeon%2Fjava-opa-wasm/lists"}