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.
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:
Clone the repository, install the required dependencies, and build the runtime:
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
Once built, you can run JavaScript files using:
./izem yourfile.js
You can start a simple server using the izem.serve
method. Below is an example of how to initialize the server:
izem.serve(4006, (req) => {
return "Welcome to the Izem Server";
});
Izem is designed to adhere to the WinterCG standards, ensuring compatibility with modern web platform capabilities and a consistent developer experience.
The following APIs are currently implemented in Izem:
console
setTimeout() / clearTimeout()
setInterval() / clearInterval()
URL
URLSearchParams
WritableStream
WritableStreamDefaultWriter