Skip to content

Commit 69f52c2

Browse files
authored
Merge branch 'master' into improve-cli
2 parents ae27bf1 + ecc4098 commit 69f52c2

File tree

109 files changed

+6266
-15153
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

109 files changed

+6266
-15153
lines changed

README.md

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,14 @@ This is a simple benchmark for several javascript frameworks. The benchmarks cre
55

66
![Screenshot](images/screenshot.png?raw=true "Screenshot")
77

8+
## Security advice
9+
10+
Currently there are 186 implemenations in this repository. It's of course impossible for me to make a security assessment
11+
for all those implementations. `npm ci` and `npm install` can execute arbitraty commands, so they should be executed only for packages you trust. Consequently I build on a dedicated virtual private linux server such that I don't have to install the packages for all those implemenations on my laptop. There's a prebuild build.zip for each chrome release you can download such that you can avoid installing the packages from all implementations.
12+
(I don't know of any (attempted) case for malicious packages in this repository, so please take it just as a general warning.)
13+
14+
The server implemenation in this repository should only be started on your local machine and access should be restricted to your local machine. I recommend against starting the server such that it can be publically accessed from the internet.
15+
816
## About the benchmarks
917

1018
The following operations are benchmarked for each framework:
@@ -54,9 +62,9 @@ Depending on your requirements, the “non-keyed” mode can be a performance ga
5462

5563
Read more here: [https://www.stefankrause.net/wp/?p=342](https://www.stefankrause.net/wp/?p=342)
5664

57-
# 1 NEW: Run pre-built binaries for all frameworks
65+
# 1 Run pre-built binaries for all frameworks
5866

59-
There are currently ~60 framework entries in this repository. Installing (and maintaining) those can be challenging, but here are simplified instructions how to get started.
67+
There are currently 186 implementations in this repository. Installing (and maintaining) those can be challenging, but here are simplified instructions how to get started. See the security advice above to read why that might be a good idea.
6068

6169
## 1.1 Prerequisites
6270

@@ -275,7 +283,8 @@ npm run index
275283

276284
## 2.7 [Optional] Building and running the benchmarks for all frameworks
277285

278-
This is not for the faint at heart. You can build all frameworks simply by issuing:
286+
This is not for the faint at heart. **Please read the security advice before running this command.**
287+
You can build all frameworks by issuing:
279288

280289
```
281290
cd ..
@@ -551,24 +560,30 @@ Thanks to Baptiste Augrain for making the benchmarks more sophisticated and addi
551560
552561
Frameworks without significant activity on github or npm for more than a year will be removed (_automatic commits like dependabot and minor updates, like docs editions, are ignored_).
553562
563+
## 2023-11-07
564+
The following frameworks were archived after chrome 119. Their last results are included in [chrome 119 results](https://krausest.github.io/js-framework-benchmark/2023/table_chrome_119.0.6045.105.html).
565+
- [x] sifrr
566+
567+
554568
## 2023-10-22
555569
The following frameworks were archived after chrome 118. Their last results are included in [chrome 118 results](https://krausest.github.io/js-framework-benchmark/2023/table_chrome_118.0.5993.70.html).
556570
- [x] 1more
557-
- [x] hullo
571+
- [x] bdc
572+
- [x] choo
558573
- [x] domdiff
559574
- [x] domvm
560575
- [x] endorphin
561576
- [x] etch
577+
- [x] forgo
578+
- [x] fullweb-helpers
579+
- [x] fullweb-template
562580
- [x] heresy
581+
- [x] hullo
563582
- [x] lighterhtml
564583
- [x] neverland
565584
- [x] resonatejs
566585
- [x] sledgehammer
567586
- [x] uhydro
568-
- [x] fullweb-helpers
569-
- [x] fullweb-template
570-
- [x] forgo
571-
- [x] choo
572587
573588
574589
## 2020-7-9

eslint.config.js

Lines changed: 25 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -45,66 +45,33 @@ export default [
4545
globals: { ...globals.node },
4646
},
4747
rules: {
48-
"unicorn/no-console-spaces": "error",
49-
// "unicorn/filename-case": "error",
50-
// "unicorn/better-regex": "error",
51-
// "unicorn/catch-error-name": "error",
52-
// "unicorn/consistent-destructuring": "error",
53-
// "unicorn/consistent-function-scoping": "error",
54-
// "unicorn/custom-error-definition": "off",
55-
// "unicorn/empty-brace-spaces": "error",
56-
// "unicorn/error-message": "error",
57-
// "unicorn/escape-case": "error",
58-
// "unicorn/expiring-todo-comments": "error",
59-
// "unicorn/explicit-length-check": "error",
60-
// "unicorn/import-style": "error",
61-
// "unicorn/new-for-builtins": "error",
62-
// "unicorn/no-abusive-eslint-disable": "error",
63-
// "unicorn/no-array-callback-reference": "error",
64-
// "unicorn/no-array-for-each": "error",
65-
// "unicorn/no-array-method-this-argument": "error",
66-
// "unicorn/no-array-push-push": "error",
67-
// "unicorn/no-array-reduce": "error",
68-
// "unicorn/no-await-expression-member": "error",
69-
// "unicorn/no-console-spaces": "error",
70-
// "unicorn/no-document-cookie": "error",
71-
// "unicorn/no-empty-file": "error",
72-
// "unicorn/no-for-loop": "error",
73-
// "unicorn/no-hex-escape": "error",
74-
// "unicorn/no-instanceof-array": "error",
75-
// "unicorn/no-invalid-remove-event-listener": "error",
76-
// "unicorn/no-keyword-prefix": "off",
77-
// "unicorn/no-lonely-if": "error",
78-
// "no-negated-condition": "off",
79-
// "unicorn/no-negated-condition": "error",
80-
// "no-nested-ternary": "off",
81-
// "unicorn/no-nested-ternary": "error",
82-
// "unicorn/no-new-array": "error",
83-
// "unicorn/no-new-buffer": "error",
84-
// "unicorn/no-null": "error",
85-
// "unicorn/no-object-as-default-parameter": "error",
86-
// "unicorn/no-process-exit": "error",
87-
// "unicorn/no-static-only-class": "error",
88-
// "unicorn/no-thenable": "error",
89-
// "unicorn/no-this-assignment": "error",
90-
// "unicorn/no-typeof-undefined": "error",
91-
// "unicorn/no-unnecessary-await": "error",
92-
// "unicorn/no-unreadable-array-destructuring": "error",
93-
// "unicorn/no-unreadable-iife": "error",
94-
// "unicorn/no-unused-properties": "off",
95-
// "unicorn/no-useless-fallback-in-spread": "error",
96-
// "unicorn/no-useless-length-check": "error",
97-
// "unicorn/no-useless-promise-resolve-reject": "error",
98-
// "unicorn/no-useless-spread": "error",
99-
// "unicorn/no-useless-switch-case": "error",
100-
// "unicorn/no-useless-undefined": "error",
101-
// "unicorn/no-zero-fractions": "error",
102-
// "unicorn/number-literal-case": "error",
103-
// "unicorn/numeric-separators-style": "error",
48+
...unicorn.configs.recommended.rules,
49+
// no:
50+
"unicorn/filename-case": "off",
51+
"unicorn/no-for-loop": "off",
52+
"unicorn/no-process-exit": "off",
53+
"unicorn/numeric-separators-style": "off",
54+
"unicorn/prevent-abbreviations": "off",
55+
"unicorn/prefer-spread": "off",
56+
"unicorn/prefer-ternary": "off",
57+
"unicorn/require-number-to-fixed-digits-argument": "off",
58+
"unicorn/prefer-set-has": "off",
59+
"unicorn/unicorn/no-array-reduce": "off",
60+
// maybe not:
61+
"unicorn/consistent-function-scoping": "off",
62+
"unicorn/no-array-for-each": "off",
63+
"unicorn/no-await-expression-member": "off",
64+
"unicorn/no-zero-fractions": "off",
65+
"unicorn/prefer-top-level-await": "off",
66+
"unicorn/prefer-module": "off",
67+
// maybe add later:
68+
"unicorn/no-null": "off",
69+
"unicorn/switch-case-braces": "off",
70+
"unicorn/prefer-dom-node-text-content": "off",
71+
"unicorn/prefer-optional-catch-binding": "off",
72+
"unicorn/prefer-logical-operator-over-ternary": "off",
10473

105-
"no-unused-vars": "off",
10674
"@typescript-eslint/no-explicit-any": "off",
107-
"@typescript-eslint/no-unused-vars": "off",
10875
"require-await": "error",
10976
"@typescript-eslint/no-floating-promises": "error",
11077
},

frameworks/keyed/arrowjs/src/Main.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ function buildData(count = 1000) {
4545
data[i] = { id: rowId++, label: adjectives[_random(adjectives.length)] + " " + colours[_random(colours.length)] + " " + nouns[_random(nouns.length)] };
4646
return data;
4747
}
48-
html`<div>
48+
html`<div class="container">
4949
<div class="jumbotron">
5050
<div class="row">
5151
<div class="col-md-6">

frameworks/keyed/bdc/index.html

Lines changed: 0 additions & 15 deletions
This file was deleted.

0 commit comments

Comments
 (0)