All Projects → yever → Rusty Typescript

yever / Rusty Typescript

Licence: apache-2.0
A TypeScript compiler written in Rust

Programming Languages

typescript
32286 projects
rust
11053 projects

Projects that are alternatives of or similar to Rusty Typescript

Wasmpatch
🧱Yet Another Patch Module for iOS/macOS via WebAssembly
Stars: ✭ 192 (-13.51%)
Mutual labels:  webassembly
Libauth
An ultra-lightweight, zero-dependency JavaScript library for Bitcoin, Bitcoin Cash, and Bitauth applications.
Stars: ✭ 205 (-7.66%)
Mutual labels:  webassembly
Customasm
💻 An assembler for custom, user-defined instruction sets! https://hlorenzi.github.io/customasm/web/
Stars: ✭ 211 (-4.95%)
Mutual labels:  webassembly
Wasm Rust Chip8
A WebAssembly CHIP-8 emulator written with Rust
Stars: ✭ 193 (-13.06%)
Mutual labels:  webassembly
Spec
WebAssembly specification, reference interpreter, and test suite.
Stars: ✭ 2,458 (+1007.21%)
Mutual labels:  webassembly
Artichoke
💎 Artichoke is a Ruby made with Rust
Stars: ✭ 2,557 (+1051.8%)
Mutual labels:  webassembly
Wasm Examples
WebAssembly Examples
Stars: ✭ 191 (-13.96%)
Mutual labels:  webassembly
Pont
An online board game in Rust and WebAssembly
Stars: ✭ 218 (-1.8%)
Mutual labels:  webassembly
Binaryen.js
A buildbot for binaryen.js, a port of Binaryen to the Web, with TypeScript support.
Stars: ✭ 201 (-9.46%)
Mutual labels:  webassembly
Flvplayer
🍭 FlvPlayer.js is a JavaScript player for decode flv to the canvas
Stars: ✭ 210 (-5.41%)
Mutual labels:  webassembly
Diagon
Interactive ASCII art diagram generators. 🌟
Stars: ✭ 189 (-14.86%)
Mutual labels:  webassembly
Argon2 Browser
Argon2 library compiled for browser runtime
Stars: ✭ 197 (-11.26%)
Mutual labels:  webassembly
Vue
The progressive framework for WebAssembly applications.
Stars: ✭ 211 (-4.95%)
Mutual labels:  webassembly
Javascriptmusic
Live coding music and synthesis in Javascript / AssemblyScript (WebAssembly)
Stars: ✭ 193 (-13.06%)
Mutual labels:  webassembly
Porcupine
On-device wake word detection powered by deep learning.
Stars: ✭ 2,606 (+1073.87%)
Mutual labels:  webassembly
Nebulet
A proof-of-concept microkernel that implements a WebAssembly "usermode" that runs in Ring 0.
Stars: ✭ 2,237 (+907.66%)
Mutual labels:  webassembly
Sandspiel
Creative cellular automata browser game
Stars: ✭ 2,476 (+1015.32%)
Mutual labels:  webassembly
Way Of Life
Conway's game of life implemented in JavaScript & WebAssembly, rendered to canvas.
Stars: ✭ 218 (-1.8%)
Mutual labels:  webassembly
Wasm Worker
Move a WebAssembly module into its own thread
Stars: ✭ 215 (-3.15%)
Mutual labels:  webassembly
Ppci
A compiler for ARM, X86, MSP430, xtensa and more implemented in pure Python
Stars: ✭ 210 (-5.41%)
Mutual labels:  webassembly

Build Status Gitter

rusty-typescript

A TypeScript compiler written in Rust.

This is a very experimental project in its initial phase. Its goal is to create a WebAssembly implementation of TypeScript written in Rust.

Note that this is still a normal TypeScript compiler, compiling TypeScript code into JavaScript. It only leverages Rust and WebAssembly for better performance.

The approach taken here is to inline the WebAssembly binary into the JavaScript, and bundle everything into one TypeScript file (with type checking and linting disabled). This makes the result platform-independent (browser vs. nodejs) and easy to inject into the source code of TypeScript. This way, the new implementation can be verified against the same tests used by TypeScript itself.

How to run it?

You would need to have nodejs and npm installed. Running npm install will automatically install the Rust toolchain and wasm-pack (using wasm-pack-npm).

You might need to add the cargo binary directory to your PATH, like so:

$ export PATH="$HOME/.cargo/bin:$PATH"

To build the WebAssembly artifact, run:

$ npm run build

To inject the artifact into the TypeScript source code (included here as a git submodule), run:

$ npm run inject

To run the TypeScript tests against the injected source code, run:

$ npm test

Contribute

Contributions are very welcome. Just open an issue, add a comment to an existing one or fork and make a pull request.

Rewriting 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 :)

rusty-typescript

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].