Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chadc1050/hermes
Javascript Superset Targeting WASM Compilation
https://github.com/chadc1050/hermes
compiler javascript typescript wasm
Last synced: 2 days ago
JSON representation
Javascript Superset Targeting WASM Compilation
- Host: GitHub
- URL: https://github.com/chadc1050/hermes
- Owner: chadc1050
- License: apache-2.0
- Created: 2024-04-02T01:47:41.000Z (8 months ago)
- Default Branch: master
- Last Pushed: 2024-04-10T03:56:45.000Z (7 months ago)
- Last Synced: 2024-04-11T03:09:58.647Z (7 months ago)
- Topics: compiler, javascript, typescript, wasm
- Language: Rust
- Homepage:
- Size: 40 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# Hermes
[![Windows](https://github.com/chadc1050/Hermes/actions/workflows/windows-build.yml/badge.svg)](https://github.com/chadc1050/Hermes/actions/workflows/windows-build.yml)
[![Linux Run](https://github.com/chadc1050/Hermes/actions/workflows/linux-build.yml/badge.svg)](https://github.com/chadc1050/Hermes/actions/workflows/linux-build.yml)Hermes aims to be a drop in replacement for JS to allow for seamless opt in for WASM targeting. It will be a super set of JS, with additional opt in features to improve performance. With Hermes, you will be able to take any existing JS package and easily compile it with minimal overhead. The benefit of this is ultimatley that the developer
will be able to access the existing massive ecosystem of JS packages, whilst being able to write JS interopable code.## Roadmap
### Emulated JS Compiler
1. AST Lowering
- Reader
- Lexer
- Parser
2. HLIR Lowering
- Type inferencing and Checking
3. MLIR Lowering
4. LLVM Lowering
- CodeGen### Feature Enhanced Compiler
- Traits
- Explicit References### StdLib
- JS Interpreter Runtime Standard Library Compatibility
- NodeJS
- BunJS
- Deno
- Just
- Txiki
- Napa
- Elsa
- Window
- Additional Features### Built-In Testing Library
- Syntactic similarity to Jest### Package Manager
- API Compatibility with existing JS Package Managers (NPM, Yarn, ect...)
- API for accessing Hermes-first packages### Toolchain Extensions
- Conversion tool (TS -> JS -> Hermes)## Documentation
### Links
#### WASM
- [WASM Specification](https://webassembly.github.io/spec/core/)#### Javascript
- [Javascript Specification](https://developer.mozilla.org/en-US/docs/Web/JavaScript)
- [ECMAScript Specification](https://262.ecma-international.org/#sec-ecmascript-language-lexical-grammar)#### LLVM
- [LLVM Specification](https://llvm.org/docs/LangRef.html)
- [llvm-sys](https://crates.io/crates/llvm-sys)
- [llvmenv](https://crates.io/crates/llvmenv)