https://github.com/atilmohamine/izem
Izem is a blazing fast JavaScript and TypeScript runtime built with Nim 2 and JavaScriptCore
https://github.com/atilmohamine/izem
javascript javascript-runtime javascriptcore nim nodejs
Last synced: 9 days ago
JSON representation
Izem is a blazing fast JavaScript and TypeScript runtime built with Nim 2 and JavaScriptCore
- Host: GitHub
- URL: https://github.com/atilmohamine/izem
- Owner: AtilMohAmine
- License: mit
- Created: 2024-07-27T21:42:00.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-09-12T21:27:23.000Z (over 1 year ago)
- Last Synced: 2024-09-13T10:27:34.391Z (over 1 year ago)
- Topics: javascript, javascript-runtime, javascriptcore, nim, nodejs
- Language: Nim
- Homepage:
- Size: 926 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Izem
**Izem** is a **blazing fast** JavaScript and TypeScript runtime built with Nim 2 and JavaScriptCore. It is designed for exceptional performance and efficiency, capable of handling up to **100,000 requests per second**.
## Benchmark
The benchmark tests were run on a system with the following specifications:
- **Operating System**: Linux (Ubuntu)
- **Processor**: Intel(R) Core(TM) i3-4150 CPU @ 3.50GHz
- **Memory**: 8GB RAM
Below is the benchmark bar chart showing the performance of the system during the tests:
## Getting Started
### Installation:
Clone the repository, install the required dependencies, and build the runtime:
```bash
git clone https://github.com/atilmohamine/izem.git
cd izem
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.0-dev # Required for JavaScriptCore
make deps
make
```
### Usage:
Once built, you can run JavaScript files using:
```bash
./izem yourfile.js
```
## Starting a Server
You can start a simple server using the `izem.serve` method. Below is an example of how to initialize the server:
```js
izem.serve(4006, (req) => {
return "Welcome to the Izem Server";
});
```
## WinterCG Compliance and Available APIs
**Izem** is designed to adhere to the [WinterCG](https://wintercg.org/) standards, ensuring compatibility with modern web platform capabilities and a consistent developer experience.
### Currently Available APIs
The following APIs are currently implemented in **Izem**:
- `console`
- `setTimeout() / clearTimeout()`
- `setInterval() / clearInterval()`
- `URL`
- `URLSearchParams`
- `WritableStream`
- `WritableStreamDefaultWriter`