https://github.com/CSalih/web-framework-benchmark-thesis
Benchmark comparison of Leptos to Leading JavaScript Web Frameworks
https://github.com/CSalih/web-framework-benchmark-thesis
angular benchmark leptos performance react vue
Last synced: 5 months ago
JSON representation
Benchmark comparison of Leptos to Leading JavaScript Web Frameworks
- Host: GitHub
- URL: https://github.com/CSalih/web-framework-benchmark-thesis
- Owner: CSalih
- Created: 2024-04-15T10:08:32.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-03-25T08:46:02.000Z (about 1 year ago)
- Last Synced: 2025-03-25T09:41:02.883Z (about 1 year ago)
- Topics: angular, benchmark, leptos, performance, react, vue
- Language: Jupyter Notebook
- Homepage:
- Size: 3.11 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Web Framework Benchmark
This repository contains the source code of the bachelor's thesis
*Benchmark comparison of Leptos to Leading JavaScript Web Frameworks*.
The `apps` folder contains the source code of the used web frameworks,
while the `benchmark` folder contains the benchmark related code.
The `services` folder contains the source code of the RealWorld API server.
> *NOTE:*
> In the thesis, the term RealWorld is referred to as Conduit. The code was
> not adapted to reflect this change yet.
# Requirements
- [Node](https://nodejs.org/en/download) v20
- [Docker](https://docs.docker.com/engine/install/) v23 or later
- [uv](https://docs.astral.sh/uv/getting-started/installation/) v0.5 or later
# Setup
```bash
# Install pnpm
corepack enable
# Install dependencies
pnpm install
# Build the Docker image
pnpm build:docker
# Install the Playwright dependencies
pnpm --filter=benchmark-playwright exec playwright install
```
# Benchmark
To execute the benchmark use the following command:
```bash
pnpm run benchmark
```
The benchmark script accepts the following arguments:
* `--app` Space-separated list of frameworks to benchmark. Default:
`app-leptos app-react app-angular app-vue realworld-leptos realworld-react realworld-angular realworld-vue`
* `--repeat` Number of iterations to run the benchmark. Default: `100`
> *NOTE:*
> For the `realworld-*` benchmarks you need to start the RealWorld API server first.
> You can do this by running the following command: `pnpm start:api`
Example to benchmark Leptos with 100 iterations:
```bash
pnpm start:api
pnpm run benchmark --app realworld-leptos --repeat 100
```
# Research Paper and Citation
If you use this software for your research, please cite it as:
```
@masterthesis{candirBenchmarkComparisonLeptos2025,
type = {Bachelor's Thesis},
title = {Benchmark {{Comparison}} of {{Leptos}} to {{Leading JavaScript Web Frameworks}}},
author = {Candir, Salih and Benedikt, Dornauer},
year = {2025},
month = mar,
langid = {english},
school = {University of Innsbruck}
}
```