{"id":13511821,"url":"https://github.com/google/j2cl","last_synced_at":"2025-05-14T13:06:00.157Z","repository":{"id":37561935,"uuid":"94876336","full_name":"google/j2cl","owner":"google","description":"Java to Closure JavaScript transpiler","archived":false,"fork":false,"pushed_at":"2025-05-07T18:18:05.000Z","size":82677,"stargazers_count":1297,"open_issues_count":29,"forks_count":146,"subscribers_count":57,"default_branch":"master","last_synced_at":"2025-05-07T19:28:50.579Z","etag":null,"topics":["compiler","gwt","j2cl","java","javascript","transpiler","wasm","wasmgc"],"latest_commit_sha":null,"homepage":"","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/google.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2017-06-20T09:53:52.000Z","updated_at":"2025-05-07T18:18:09.000Z","dependencies_parsed_at":"2025-04-12T13:47:47.524Z","dependency_job_id":"054d04f3-453e-467a-b8f6-a2b98be44188","html_url":"https://github.com/google/j2cl","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fj2cl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fj2cl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fj2cl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fj2cl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google","download_url":"https://codeload.github.com/google/j2cl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254149947,"owners_count":22022851,"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","gwt","j2cl","java","javascript","transpiler","wasm","wasmgc"],"created_at":"2024-08-01T03:01:12.300Z","updated_at":"2025-05-14T13:06:00.125Z","avatar_url":"https://github.com/google.png","language":"Java","readme":"# [J2CL](http://j2cl.io)  \u0026middot; [![Build Status](https://github.com/google/j2cl/actions/workflows/ci.yaml/badge.svg)](https://github.com/google/j2cl/actions/workflows/ci.yaml)\n\nSeamless Java in JavaScript applications that tightly optimizes with\n[Closure Compiler](https://github.com/google/closure-compiler)\n\n---\nJ2CL is a powerful, simple and lightweight transpiler from Java to Closure style\nJavaScript.\n\n* **Get the best out of Java and JavaScript.** You no longer need to choose between\nthe two or lock into a specific framework or a language. Choose the right language\nat the right place and hire the best talent for the job.\n\n* **Get it correct the first time.** The robust run-time type checking based on\nthe strong Java type system combined with the advanced cross language type checks\ncatches your mistakes early on.\n\n* **Provides massive code reuse.** J2CL closely follows the Java language\n[semantics](docs/limitations.md). This reduces surprises, enables reuse across\ndifferent platforms and brings most popular Java libraries into your toolkit\nincluding [Guava](https://github.com/google/guava), [Dagger](https://dagger.dev/)\nand [AutoValue](https://github.com/google/auto/tree/master/value).\n\n* **Modern, fresh and blazing fast.** Powered by [Bazel](https://bazel.build/),\nJ2CL provides a fast and modern development experience that will make you smile\nand keep you productive.\n\n* **Road tested and trusted.** J2CL is the underlying technology of the most\nadvanced GSuite apps developed by Google including GMail, Inbox, Docs, Slides\nand Calendar.\n\n\nGuides\n------\n- [Getting Started](docs/getting-started.md)\n- [Getting Started for Wasm](docs/getting-started-j2wasm.md)\n- [JsInterop Cookbook](docs/jsinterop-by-example.md)\n- [J2CL Best Practices](docs/best-practices.md)\n- [Emulation Limitations](docs/limitations.md)\n- [Data Types and Semantics](docs/semantics.md)\n- [Bazel Tutorial](https://docs.bazel.build/versions/master/tutorial/java.html)\n- [Bazel Best Practices](https://docs.bazel.build/versions/master/best-practices.html)\n\n\nGet Support\n------\n- Please subscribe to [J2CL announce](http://groups.google.com/forum/#!forum/j2cl-announce) for announcements (low traffic).\n- Please report [bugs](https://github.com/google/j2cl/issues/new?template=bug_report.md\u0026labels=bug)\nor file [feature requests](https://github.com/google/j2cl/issues/new?template=feature_request.md\u0026labels=enhancement)\nvia [issue tracker](https://github.com/google/j2cl/issues).\n- For other questions please use the [discussions](https://github.com/google/j2cl/discussions/new?category=q-a).\n\n\nCaveat Emptor\n-------------\nJ2CL is production ready and actively used by many of Google's products, but the\nprocess of adapting workflows and tooling for the open-source version is not yet\nfinalized.\n\nWasm support is fully working but should be considered as work-in-progress since\nthe related parts of the spec is not finalized yet. We are working closely with\nW3C and V8 team to finalize it and make it available in all browsers.\n\nYou can see what we are working on [here](https://github.com/google/j2cl/issues/93).\n\nLast, the workflow is **not** yet supported in Windows. You can contribute to\nmake this a reality. Coordinate and follow the progress of this effort\n[here](https://github.com/google/j2cl/issues/9).\nFor developers that want to use Windows as their platform we recommend\ninstalling under WSL (Windows Subsystem for Linux).\n\nStay tuned!\n\n\nJ2CL vs. GWT?\n---\nIn early 2015, Google GWT team made a difficult but necessary decision to work\non a new alternative product to enable Java for the Web.\n\nIt was mostly due to changing trends in the web ecosystem and our new internal\ncustomers who were looking at Java on the Web not as an isolated ecosystem but\nan integral part of their larger stack. It required a completely new vision\nto create tools from the ground up, that are tightly integrated with the rest of\nthe ecosystem. A modern architecture, that is reliable, fast and provides a\nquick iteration cycle.\n\nThere was no practical way to achieve those goals completely incrementally out\nof GWT. We started from scratch using everything we learned from working on GWT\nover the years. In the meantime, we kept GWT steering committee members in the\nloop and gave contributors very early access so they could decide to build the\nnext version of GWT on J2CL.\n\nThe strategy has now evolved GWT3 to an SDK focused on libraries and enterprise\ntooling which was one of the strongest points of GWT all along.\n\nWe think that such separation of concerns is crucial part of the success of the\nboth projects and will provide the best results for the open source community.\n\n\nContributing\n------------\nRead how to [contribute to J2CL](CONTRIBUTING.md).\n\nLicensing\n---------\nPlease refer to [the license file](LICENSE).\n\nDisclaimers\n-----------\nJ2CL is not an official Google product and is currently in 'alpha' release for developer preview.\n","funding_links":[],"categories":["Java","Java (78)","By Target Language","wasm","Table of Contents"],"sub_categories":["JavaScript","Languages"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle%2Fj2cl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoogle%2Fj2cl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle%2Fj2cl/lists"}