An open API service indexing awesome lists of open source software.

https://github.com/solarbrowser/quanta

Experimental ECMAScript (js) engine written in C++
https://github.com/solarbrowser/quanta

ecmascript javascript javascript-engine solar-project

Last synced: about 1 month ago
JSON representation

Experimental ECMAScript (js) engine written in C++

Awesome Lists containing this project

README

          

# Quanta

Quanta is an experimental ECMAScript (or JS) engine focused on both **memory efficiency** and **execution speed**.

## Specification Support

> Tested with Kangax compatibility tables

| ECMAScript Version | Support |
|--------------------|--------|
| ES1-ES5 | ~100% |
| ES6 | ~99% |
| ES2016+ | ~75% |

## Test262

You can review executed tests here: [quanta.js.org](https://quanta.js.org/pages/test262/test262.html)

If the results are outdated, use the dedicated [runner](https://github.com/ataturkcu/quanta-test262-runner)

---

## For Developers

### Documentation

You can reach all the documentation files from [here](https://quanta.js.org/pages/docs/docs.html).

### Build


Quanta uses **Clang++** across all platforms.

Windows

```bash
# Install LLVM and add to PATH
clang++ --version

git clone https://github.com/solarbrowser/quanta
cd quanta
build-windows.bat
```

Linux

```bash
# Ubuntu/Debian
sudo apt install clang lld

# Fedora
sudo dnf install clang lld

# Arch
sudo pacman -S clang lld

git clone https://github.com/solarbrowser/quanta
cd quanta
./build.sh
# or
make -j$(nproc)
```

macOS

```bash
xcode-select --install

git clone https://github.com/solarbrowser/quanta
cd quanta
./build.sh
# or
make -j$(nproc)
```

Build Outputs

- **Windows:** `build/bin/quanta.exe`
- **Linux/macOS:** `build/bin/quanta`
- **Static Library:** `build/libquanta.a`
- **Logs:** `build/build.log`, `build/errors.log`

Usage

```bash
# Run a JavaScript file
./build/bin/quanta example.js

# Start REPL
./build/bin/quanta
```

### Troubleshooting

### Clang not found
- Windows: Ensure LLVM is in PATH, restart terminal
- Linux: Install clang and lld

### Build errors
```bash
make clean
# or delete build/ directory
```

Check logs:
```
build/errors.log
```

## Roadmap

- Improve **ES6 and ES2016+** support
- Implement **bytecode virtual machine (VM)**

## Contributing

Please ignore the `CONTRIBUTING.md` file for now. I kept it because I don’t want to recreate it when the initial release is ready.

At this stage, I want to fully shape Quanta’s architecture on my own, without external changes. The engine is evolving rapidly, and even small additions can unintentionally break other parts of the system. For that reason, I prefer to develop it solo until the initial release. Thanks for your understanding and for considering contributing!

---

## License

This project is licensed under the **Mozilla Public License 2.0** - see the LICENSE file for details.