All components in Crank are just functions or generator functions. No classes, hooks, proxies or template languages are needed.
Crank provides first-class support for promises. You can define components as async functions and race renderings to display fallback UIs.
Crank has no dependencies, and its core is a single file. It currently measures at 4.5KB minified and gzipped.
According to benchmarks, Crank beats React in terms of speed and memory usage, and is currently comparable to Preact or Vue.
The core renderer can be extended to target alternative environments such as WebGL libraries, terminals, smartphones or smart TVs.