{"id":13660917,"url":"https://github.com/lulu-berlin/rusty-typescript","last_synced_at":"2026-03-11T04:32:06.344Z","repository":{"id":52009058,"uuid":"180218541","full_name":"lulu-berlin/rusty-typescript","owner":"lulu-berlin","description":"A TypeScript compiler written in Rust","archived":false,"fork":false,"pushed_at":"2019-05-06T20:00:35.000Z","size":188,"stargazers_count":234,"open_issues_count":9,"forks_count":5,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-09-01T12:32:58.390Z","etag":null,"topics":["rust","typescript","webassembly"],"latest_commit_sha":null,"homepage":"https://twitter.com/TypescriptRusty","language":"TypeScript","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/lulu-berlin.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}},"created_at":"2019-04-08T19:27:01.000Z","updated_at":"2025-07-21T07:57:56.000Z","dependencies_parsed_at":"2022-08-26T14:00:50.565Z","dependency_job_id":null,"html_url":"https://github.com/lulu-berlin/rusty-typescript","commit_stats":null,"previous_names":["lulu-berlin/rusty-typescript","yever/rusty-typescript"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lulu-berlin/rusty-typescript","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lulu-berlin%2Frusty-typescript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lulu-berlin%2Frusty-typescript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lulu-berlin%2Frusty-typescript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lulu-berlin%2Frusty-typescript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lulu-berlin","download_url":"https://codeload.github.com/lulu-berlin/rusty-typescript/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lulu-berlin%2Frusty-typescript/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30370798,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T21:41:54.280Z","status":"online","status_checked_at":"2026-03-11T02:00:07.027Z","response_time":84,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["rust","typescript","webassembly"],"created_at":"2024-08-02T05:01:27.386Z","updated_at":"2026-03-11T04:32:06.203Z","avatar_url":"https://github.com/lulu-berlin.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.com/yever/rusty-typescript.svg?branch=master)](https://travis-ci.com/yever/rusty-typescript)\n[![Gitter](https://badges.gitter.im/rusty-typescript/community.svg)](https://gitter.im/rusty-typescript/community?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge)\n\n# rusty-typescript\nA TypeScript compiler written in Rust.\n\nThis is a very experimental project in its initial phase.\nIts goal is to create a [WebAssembly](https://webassembly.org/)\nimplementation of [TypeScript](https://www.typescriptlang.org/)\nwritten in [Rust](https://www.rust-lang.org/).\n\nNote that this is still a normal TypeScript compiler, compiling TypeScript code into JavaScript. It only leverages Rust and WebAssembly for better performance.\n\nThe approach taken here is to inline the WebAssembly binary into the\nJavaScript, and bundle everything into one TypeScript file (with type\nchecking and linting disabled).\nThis makes the result platform-independent (browser vs. `nodejs`) and easy\nto inject into the [source code of TypeScript](https://github.com/Microsoft/TypeScript).\nThis way, the new implementation can be verified against the same tests used by TypeScript itself.\n\n## How to run it?\n\nYou would need to have `nodejs` and `npm` installed. Running `npm install` will automatically install the Rust toolchain and [wasm-pack](https://github.com/rustwasm/wasm-pack) (using [wasm-pack-npm](https://github.com/robertohuertasm/wasm-pack-npm)). \n\nYou might need to add the cargo binary directory to your `PATH`, like so:\n```sh\n$ export PATH=\"$HOME/.cargo/bin:$PATH\"\n```\n\nTo build the WebAssembly artifact, run:\n```sh\n$ npm run build\n```\n\nTo inject the artifact into the TypeScript source code (included here as a git submodule), run:\n```sh\n$ npm run inject\n```\n\nTo run the TypeScript tests against the injected source code, run:\n```sh\n$ npm test\n```\n\n## Contribute\n\nContributions are very welcome. Just open an issue, add a comment to an existing one or fork and make a pull request.\n\nRewriting the entire codebase of TypeScript is a very big (and fun!) project. There is a lot to do and enough for whoever is interested in giving a hand. Join me and let's make it happen :)\n\n![rusty-typescript](https://media1.tenor.com/images/2ceb8a9146957d119d377e7c63b3d8fd/tenor.gif)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flulu-berlin%2Frusty-typescript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flulu-berlin%2Frusty-typescript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flulu-berlin%2Frusty-typescript/lists"}